added jackson

~1h work
This commit is contained in:
Benedikt Galbavy 2023-12-30 00:50:22 +01:00
parent 8170a24eec
commit 0a1f96e842
15 changed files with 71 additions and 19 deletions

Binary file not shown.

BIN
lib/jackson-core-2.13.3.jar Normal file

Binary file not shown.

Binary file not shown.

View File

@ -7,5 +7,17 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module-library" scope="PROVIDED">
<library>
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.18.30/lombok-1.18.30.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="library" name="fasterxml.jackson.core" level="project" />
<orderEntry type="library" name="fasterxml.jackson.core.annotations" level="project" />
<orderEntry type="library" name="fasterxml.jackson.core.databind" level="project" />
</component>
</module>

View File

@ -1,4 +1,5 @@
import at.nanopenguin.mtcg.application.TestService;
import at.nanopenguin.mtcg.application.service.TestService;
import at.nanopenguin.mtcg.application.service.UserService;
import at.nanopenguin.mtcg.http.HttpMethod;
import at.nanopenguin.mtcg.http.Router;
import at.nanopenguin.mtcg.http.Server;
@ -11,10 +12,10 @@ public class Main {
router.addRoute(HttpMethod.GET, "/test/{var}/service", new TestService(), new int[]{2});
/* users */
router.addRoute(HttpMethod.POST, "/users", new TestService(), new int[]{});
router.addRoute(HttpMethod.GET, "/users/{username}", new TestService(), new int[]{2});
router.addRoute(HttpMethod.PUT, "/users/{username}", new TestService(), new int[]{2});
router.addRoute(HttpMethod.POST, "/sessions", new TestService(), new int[]{});
router.addRoute(HttpMethod.POST, "/users", new UserService(), new int[]{});
router.addRoute(HttpMethod.GET, "/users/{username}", new UserService(), new int[]{2});
router.addRoute(HttpMethod.PUT, "/users/{username}", new UserService(), new int[]{2});
router.addRoute(HttpMethod.POST, "/sessions", new UserService(), new int[]{});
/* packages */
router.addRoute(HttpMethod.POST, "/packages", new TestService(), new int[]{});

View File

@ -1,9 +0,0 @@
package at.nanopenguin.mtcg.application;
import at.nanopenguin.mtcg.http.HttpRequest;
import at.nanopenguin.mtcg.http.Response;
public interface Service {
Response handleRequest(HttpRequest request);
}

View File

@ -0,0 +1,5 @@
package at.nanopenguin.mtcg.application;
public class User {
}

View File

@ -1,5 +1,6 @@
package at.nanopenguin.mtcg.application;
package at.nanopenguin.mtcg.application.service;
import at.nanopenguin.mtcg.application.service.Service;
import at.nanopenguin.mtcg.http.HttpStatus;
import at.nanopenguin.mtcg.http.HttpRequest;
import at.nanopenguin.mtcg.http.Response;

View File

@ -0,0 +1,10 @@
package at.nanopenguin.mtcg.application.service;
import at.nanopenguin.mtcg.http.HttpRequest;
import at.nanopenguin.mtcg.http.Response;
import com.fasterxml.jackson.core.JsonProcessingException;
public interface Service {
Response handleRequest(HttpRequest request) throws JsonProcessingException;
}

View File

@ -1,5 +1,6 @@
package at.nanopenguin.mtcg.application;
package at.nanopenguin.mtcg.application.service;
import at.nanopenguin.mtcg.application.service.Service;
import at.nanopenguin.mtcg.http.HttpRequest;
import at.nanopenguin.mtcg.http.HttpStatus;
import at.nanopenguin.mtcg.http.Response;

View File

@ -0,0 +1,24 @@
package at.nanopenguin.mtcg.application.service;
import at.nanopenguin.mtcg.application.service.schemas.UserCredentials;
import at.nanopenguin.mtcg.http.HttpRequest;
import at.nanopenguin.mtcg.http.HttpStatus;
import at.nanopenguin.mtcg.http.Response;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectWriter;
public class UserService implements Service {
@Override
public Response handleRequest(HttpRequest request) throws JsonProcessingException {
UserCredentials userCredentials = new UserCredentials("test", "test");
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
String json = ow.writeValueAsString(userCredentials);
System.out.println(json);
return new Response(HttpStatus.OK, "application/json", "");
}
}

View File

@ -0,0 +1,7 @@
package at.nanopenguin.mtcg.application.service.schemas;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
@JsonSerialize
public record UserCredentials(String username, String password) {
}

View File

@ -1,6 +1,6 @@
package at.nanopenguin.mtcg.http;
import at.nanopenguin.mtcg.application.Service;
import at.nanopenguin.mtcg.application.service.Service;
import java.io.BufferedReader;
import java.io.IOException;

View File

@ -1,6 +1,6 @@
package at.nanopenguin.mtcg.http;
import at.nanopenguin.mtcg.application.Service;
import at.nanopenguin.mtcg.application.service.Service;
public record Route(Service service, boolean hasPathVariable) {
}

View File

@ -1,6 +1,6 @@
package at.nanopenguin.mtcg.http;
import at.nanopenguin.mtcg.application.Service;
import at.nanopenguin.mtcg.application.service.Service;
import java.util.*;
import java.util.stream.IntStream;