diff --git a/apps/main/tv/codely/apps/mooc/backend/controller/greeter/GreeterGetController.java b/apps/main/tv/codely/apps/mooc/backend/controller/greeter/GreeterGetController.java new file mode 100644 index 00000000..601eabc0 --- /dev/null +++ b/apps/main/tv/codely/apps/mooc/backend/controller/greeter/GreeterGetController.java @@ -0,0 +1,41 @@ +package tv.codely.apps.mooc.backend.controller.greeter; + +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import tv.codely.shared.domain.DomainError; +import tv.codely.shared.domain.bus.command.CommandBus; +import tv.codely.shared.domain.bus.query.QueryBus; +import tv.codely.shared.infrastructure.spring.ApiController; + +import java.util.HashMap; + +@RestController +public final class GreeterGetController extends ApiController { + public GreeterGetController( + QueryBus queryBus, + CommandBus commandBus + ) { + super(queryBus, commandBus); + } + + @GetMapping("/greeter") + public HashMap index(@RequestParam(name = "name", required = false) String name) { + HashMap status = new HashMap<>(); + status.put("message", getGreetingMessage(name)); + return status; + } + + private String getGreetingMessage(String name) { + if (name == null) { + name = "Unknown"; + } + return "Hello " + name; + } + + @Override + public HashMap, HttpStatus> errorMapping() { + return null; + } +} diff --git a/apps/test/tv/codely/apps/mooc/backend/controller/greeter/GreeterGetControllerShould.java b/apps/test/tv/codely/apps/mooc/backend/controller/greeter/GreeterGetControllerShould.java new file mode 100644 index 00000000..2a613da4 --- /dev/null +++ b/apps/test/tv/codely/apps/mooc/backend/controller/greeter/GreeterGetControllerShould.java @@ -0,0 +1,16 @@ +package tv.codely.apps.mooc.backend.controller.greeter; + +import org.junit.jupiter.api.Test; +import tv.codely.apps.mooc.MoocApplicationTestCase; + +final class GreeterGetControllerShould extends MoocApplicationTestCase { + @Test + void greetNameMarcos() throws Exception { + assertResponse("/greeter?name=Marcos", 200, "{'message':'Hello Marcos'}"); + } + + @Test + void greetNameAnonymous() throws Exception { + assertResponse("/greeter", 200, "{'message':'Hello Unknown'}"); + } +}