diff --git a/src/main/java/de/hmmh/pmt/ApiController.java b/src/main/java/de/hmmh/pmt/ApiController.java index 550e965..42ecd51 100644 --- a/src/main/java/de/hmmh/pmt/ApiController.java +++ b/src/main/java/de/hmmh/pmt/ApiController.java @@ -1,18 +1,26 @@ package de.hmmh.pmt; import com.fasterxml.jackson.databind.ObjectMapper; +import de.hmmh.pmt.db.Project; +import de.hmmh.pmt.db.ProjectRepository; import de.hmmh.pmt.oas.DefaultApi; -import de.hmmh.pmt.oas.models.HelloOut; +import de.hmmh.pmt.oas.dtos.GetAllProjectsDTO; +import de.hmmh.pmt.oas.dtos.ProjectInfo; import jakarta.servlet.http.HttpServletRequest; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; @Controller @RequestMapping("${openapi.projectManagement.base-path:/api/v1}") public class ApiController implements DefaultApi { + @Autowired + private ProjectRepository projectRepository; @Override public Optional getObjectMapper() { @@ -25,9 +33,16 @@ public class ApiController implements DefaultApi { } @Override - public ResponseEntity getHello() { - HelloOut hello = new HelloOut(); - hello.setMsg("Hello World"); - return ResponseEntity.ok(hello); + public ResponseEntity getAllProjects() { + GetAllProjectsDTO response = new GetAllProjectsDTO(); + + for (Project project : this.projectRepository.findAll()){ + ProjectInfo projectInfo = new ProjectInfo(); + projectInfo.setId(project.getId()); + projectInfo.setName(project.getName()); + response.add(projectInfo); + } + + return ResponseEntity.ok(response); } } diff --git a/src/main/resources/api.yml b/src/main/resources/api.yml index 7e46e48..b38b396 100644 --- a/src/main/resources/api.yml +++ b/src/main/resources/api.yml @@ -5,22 +5,21 @@ info: version: 1.0.0 servers: - url: /api/v1 - components: - schemas: - HelloOut: - description: "A Test Schema" + schemas: + ProjectInfo: type: object - properties: - msg: + properties: + id: + type: integer + format: int64 + name: type: string + GetAllProjectsDTO: + type: array + items: + $ref: "#/components/schemas/ProjectInfo" responses: - OK: - description: "OK" - content: - text/plain: - schema: - type: string InternalError: description: "Internal Server Error" content: @@ -28,16 +27,14 @@ components: schema: type: string paths: - /hello: + /project: get: - operationId: "GetHello" - description: "A Simple Hello World Endpoint" + operationId: "getAllProjects" + description: "Get a List of all Projects" responses: 200: - description: "A Hello Response" + description: "" content: application/json: schema: - $ref: "#/components/schemas/HelloOut" - 500: - $ref: "#/components/responses/InternalError" \ No newline at end of file + $ref: "#/components/schemas/GetAllProjectsDTO" \ No newline at end of file diff --git a/src/main/resources/gen-config.json b/src/main/resources/gen-config.json index a87080c..0f30ca8 100644 --- a/src/main/resources/gen-config.json +++ b/src/main/resources/gen-config.json @@ -1,5 +1,5 @@ { - "modelPackage": "de.hmmh.pmt.oas.models", + "modelPackage": "de.hmmh.pmt.oas.dtos", "apiPackage": "de.hmmh.pmt.oas", "invokerPackage": "de.hmmh.pmt.oas", "java8": false,