diff --git a/lib/jackson-annotations-2.13.3.jar b/lib/jackson-annotations-2.13.3.jar new file mode 100644 index 0000000..60a3ddb Binary files /dev/null and b/lib/jackson-annotations-2.13.3.jar differ diff --git a/lib/jackson-core-2.13.3.jar b/lib/jackson-core-2.13.3.jar new file mode 100644 index 0000000..7e2086d Binary files /dev/null and b/lib/jackson-core-2.13.3.jar differ diff --git a/lib/jackson-databind-2.13.3.jar b/lib/jackson-databind-2.13.3.jar new file mode 100644 index 0000000..a27e9d7 Binary files /dev/null and b/lib/jackson-databind-2.13.3.jar differ diff --git a/mtcg.iml b/mtcg.iml index c90834f..3709e7d 100644 --- a/mtcg.iml +++ b/mtcg.iml @@ -7,5 +7,17 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Main.java b/src/Main.java index a79fddc..2d43d00 100644 --- a/src/Main.java +++ b/src/Main.java @@ -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[]{}); diff --git a/src/at/nanopenguin/mtcg/application/Service.java b/src/at/nanopenguin/mtcg/application/Service.java deleted file mode 100644 index 41485a5..0000000 --- a/src/at/nanopenguin/mtcg/application/Service.java +++ /dev/null @@ -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); -} diff --git a/src/at/nanopenguin/mtcg/application/User.java b/src/at/nanopenguin/mtcg/application/User.java new file mode 100644 index 0000000..805dd5f --- /dev/null +++ b/src/at/nanopenguin/mtcg/application/User.java @@ -0,0 +1,5 @@ +package at.nanopenguin.mtcg.application; + +public class User { + +} diff --git a/src/at/nanopenguin/mtcg/application/InternalErrorService.java b/src/at/nanopenguin/mtcg/application/service/InternalErrorService.java similarity index 78% rename from src/at/nanopenguin/mtcg/application/InternalErrorService.java rename to src/at/nanopenguin/mtcg/application/service/InternalErrorService.java index e8407f6..d598c2c 100644 --- a/src/at/nanopenguin/mtcg/application/InternalErrorService.java +++ b/src/at/nanopenguin/mtcg/application/service/InternalErrorService.java @@ -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; diff --git a/src/at/nanopenguin/mtcg/application/service/Service.java b/src/at/nanopenguin/mtcg/application/service/Service.java new file mode 100644 index 0000000..072ee8c --- /dev/null +++ b/src/at/nanopenguin/mtcg/application/service/Service.java @@ -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; +} diff --git a/src/at/nanopenguin/mtcg/application/TestService.java b/src/at/nanopenguin/mtcg/application/service/TestService.java similarity index 76% rename from src/at/nanopenguin/mtcg/application/TestService.java rename to src/at/nanopenguin/mtcg/application/service/TestService.java index 8adb001..502ec38 100644 --- a/src/at/nanopenguin/mtcg/application/TestService.java +++ b/src/at/nanopenguin/mtcg/application/service/TestService.java @@ -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; diff --git a/src/at/nanopenguin/mtcg/application/service/UserService.java b/src/at/nanopenguin/mtcg/application/service/UserService.java new file mode 100644 index 0000000..8566e3c --- /dev/null +++ b/src/at/nanopenguin/mtcg/application/service/UserService.java @@ -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", ""); + } +} diff --git a/src/at/nanopenguin/mtcg/application/service/schemas/UserCredentials.java b/src/at/nanopenguin/mtcg/application/service/schemas/UserCredentials.java new file mode 100644 index 0000000..ad019fc --- /dev/null +++ b/src/at/nanopenguin/mtcg/application/service/schemas/UserCredentials.java @@ -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) { +} diff --git a/src/at/nanopenguin/mtcg/http/RequestHandler.java b/src/at/nanopenguin/mtcg/http/RequestHandler.java index fd7a669..b3452f4 100644 --- a/src/at/nanopenguin/mtcg/http/RequestHandler.java +++ b/src/at/nanopenguin/mtcg/http/RequestHandler.java @@ -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; diff --git a/src/at/nanopenguin/mtcg/http/Route.java b/src/at/nanopenguin/mtcg/http/Route.java index b8f8c90..8c46be7 100644 --- a/src/at/nanopenguin/mtcg/http/Route.java +++ b/src/at/nanopenguin/mtcg/http/Route.java @@ -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) { } diff --git a/src/at/nanopenguin/mtcg/http/Router.java b/src/at/nanopenguin/mtcg/http/Router.java index 37be60e..3762e3b 100644 --- a/src/at/nanopenguin/mtcg/http/Router.java +++ b/src/at/nanopenguin/mtcg/http/Router.java @@ -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;