From 39ac15669917c980c65462f71f1bff382007cba4 Mon Sep 17 00:00:00 2001 From: UU_jeong <80961726+oU-Ua@users.noreply.github.com> Date: Mon, 1 Jan 2024 22:57:04 +0900 Subject: [PATCH 1/4] feat : Todo Swagger Setting --- .../todo/controller/TodoController.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/main/java/mvc/promiseme/todo/controller/TodoController.java b/src/main/java/mvc/promiseme/todo/controller/TodoController.java index c7e1204..cf48286 100644 --- a/src/main/java/mvc/promiseme/todo/controller/TodoController.java +++ b/src/main/java/mvc/promiseme/todo/controller/TodoController.java @@ -1,7 +1,15 @@ package mvc.promiseme.todo.controller; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import mvc.promiseme.common.exception.ErrorResponse; +import mvc.promiseme.project.dto.ProjectResponseDTO; import mvc.promiseme.todo.dto.TodoRequestDTO; import mvc.promiseme.todo.dto.TodoResponseDTO; import mvc.promiseme.todo.service.TodoService; @@ -15,15 +23,32 @@ @Slf4j @RestController +@Tag(name = "Todo", description = "투두 API") @RequiredArgsConstructor @RequestMapping("/todo") public class TodoController { private final TodoService todoService; + @Operation(summary = "투두생성", description = "projectId, userId, 내용, 날짜를 입력 받아 Todo 생성한다.") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "성공", content = @Content(schema = @Schema(implementation = String.class))), + @ApiResponse(responseCode = "401", description = "해당 프로젝트를 찾을 수 없습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))), + @ApiResponse(responseCode = "401", description = "해당 사용자를 찾을 수 없습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))), + @ApiResponse(responseCode = "501", description = "알수 없는 에러로 투두를 생성할 수 없습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))) + + + }) @PostMapping("/") public ResponseEntity insertTodo(@RequestBody TodoRequestDTO todoRequestDTO){ return ResponseEntity.ok(todoService.insert(todoRequestDTO)); } + @Operation(summary = "투두 조회", description = "projectId, userId, 날짜를 입력 받아 해당하는 TODO를 조회한다.") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "성공", content = @Content(schema = @Schema(implementation = String.class))), + @ApiResponse(responseCode = "401", description = "해당 프로젝트를 찾을 수 없습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))), + @ApiResponse(responseCode = "401", description = "해당 사용자를 찾을 수 없습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))), + + }) @GetMapping("/") public ResponseEntity> todoAll(@RequestParam(name = "projectId") Long projectId , @RequestParam(name = "userId") Long userId, @RequestParam(name = "todoDate") String todoDate){ @@ -31,11 +56,26 @@ public ResponseEntity> todoAll(@RequestParam(name = "proje LocalDate localDate = LocalDate.parse(todoDate, formatter); return ResponseEntity.ok(todoService.todoAll(projectId, userId, localDate)); } + @Operation(summary = "투두 수정", description = "projectId, userId, 내용, 날짜를 입력 받아 Todo 수정한다.") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "성공", content = @Content(schema = @Schema(implementation = String.class))), + @ApiResponse(responseCode = "401", description = "해당 프로젝트를 찾을 수 없습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))), + @ApiResponse(responseCode = "401", description = "해당 사용자를 찾을 수 없습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))), + @ApiResponse(responseCode = "501", description = "알수 없는 에러로 투두를 생성할 수 없습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))) + + + }) @PostMapping("/edit") public ResponseEntity editTodo(@RequestBody TodoRequestDTO todoRequestDTO){ return ResponseEntity.ok(todoService.edit(todoRequestDTO)); } + @Operation(summary = "투두생성", description = "해당 Todo 완료여부를 체크한다.") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "성공", content = @Content(schema = @Schema(implementation = String.class))), + @ApiResponse(responseCode = "401", description = "해당 TODO를 찾을 수 없습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))), + + }) @PostMapping("/check") public ResponseEntity checkTodo(@RequestBody Map requestBody){ Integer tmp = (Integer) requestBody.get("todoId"); From 0fa3f08598c9e7ad06c619ec21f30e0f38009966 Mon Sep 17 00:00:00 2001 From: UU_jeong <80961726+oU-Ua@users.noreply.github.com> Date: Mon, 1 Jan 2024 23:01:41 +0900 Subject: [PATCH 2/4] feat : Meeting Swagger Setting --- .../meeting/controller/MeetingController.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/main/java/mvc/promiseme/meeting/controller/MeetingController.java b/src/main/java/mvc/promiseme/meeting/controller/MeetingController.java index 39b71d7..dbc1456 100644 --- a/src/main/java/mvc/promiseme/meeting/controller/MeetingController.java +++ b/src/main/java/mvc/promiseme/meeting/controller/MeetingController.java @@ -1,7 +1,14 @@ package mvc.promiseme.meeting.controller; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import mvc.promiseme.common.exception.ErrorResponse; import mvc.promiseme.meeting.dto.MeetingResponseDTO; import mvc.promiseme.meeting.dto.SummaryRequestDTO; import mvc.promiseme.meeting.service.MeetingService; @@ -14,22 +21,43 @@ @Slf4j @RestController @CrossOrigin(origins ="*", allowedHeaders = "*") +@Tag(name = "Meeting", description = "회의 API") @RequestMapping("/meeting") @RequiredArgsConstructor public class MeetingController { private final MeetingService meetingService; + @Operation(summary = "회의 조회", description = "해당 프로젝트의 회의를 조회한다.") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "성공", content = @Content(schema = @Schema(implementation = MeetingResponseDTO.class))), + @ApiResponse(responseCode = "401", description = "해당 프로젝트를 찾을 수 없습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))) + + }) @GetMapping("/") public ResponseEntity> meetingAll(@RequestParam(name="projectId") Long projectId){ return ResponseEntity.ok(meetingService.meetingAll(projectId)); } + @Operation(summary = "음성 텍스트 변환", description = "음성을 텍스트로 변환한다.") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "성공", content = @Content(schema = @Schema(implementation = String.class))), + @ApiResponse(responseCode = "401", description = "해당 프로젝트를 찾을 수 없습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))) + + }) @PostMapping("/transfer") public ResponseEntity transferVoice(@RequestParam("voiceFile") MultipartFile multipartFile, @RequestParam("projectId") Long projectId){ return ResponseEntity.ok(meetingService.voiceToMeeting(multipartFile, projectId)); } + @Operation(summary = "회의 요약", description = "회의 내용을 clova studio를 이용하여 요약한다.") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "성공", content = @Content(schema = @Schema(implementation = String.class))), + @ApiResponse(responseCode = "401", description = "해당 프로젝트를 찾을 수 없습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))), + @ApiResponse(responseCode = "401", description = "해당 회의를 찾을 수 없습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))), + @ApiResponse(responseCode = "501", description = "알수 없는 에러로 투두를 생성할 수 없습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))) + + }) @PostMapping("/summary") public ResponseEntity summaryText(@RequestBody SummaryRequestDTO summaryRequestDTO) { return ResponseEntity.ok(meetingService.textToMeeting(summaryRequestDTO.getMeetingContent(), summaryRequestDTO.getProjectId())); From 76ece63ad4b2376e337995e049597d5ddd777c59 Mon Sep 17 00:00:00 2001 From: UU_jeong <80961726+oU-Ua@users.noreply.github.com> Date: Mon, 1 Jan 2024 23:05:20 +0900 Subject: [PATCH 3/4] feat : Calendar Swagger Setting --- .../calendar/controller/CalendarController.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/mvc/promiseme/calendar/controller/CalendarController.java b/src/main/java/mvc/promiseme/calendar/controller/CalendarController.java index ce52b94..b86679d 100644 --- a/src/main/java/mvc/promiseme/calendar/controller/CalendarController.java +++ b/src/main/java/mvc/promiseme/calendar/controller/CalendarController.java @@ -1,10 +1,18 @@ package mvc.promiseme.calendar.controller; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import mvc.promiseme.calendar.dto.CalendarAndTodoAllByRoleDto; import mvc.promiseme.calendar.dto.CalendarResponseDTO; import mvc.promiseme.calendar.service.CalendarService; +import mvc.promiseme.common.exception.ErrorResponse; +import mvc.promiseme.project.dto.ProjectResponseDTO; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @@ -19,6 +27,7 @@ @Slf4j @Controller @RequiredArgsConstructor +@Tag(name = "Calendar", description = "일정 API") @RequestMapping("/calendar") public class CalendarController { private final CalendarService calendarService; @@ -29,6 +38,12 @@ public class CalendarController { // // } + @Operation(summary = "메인페이지", description = "프로젝트에 관련된 일정, todo 모두 조회한다.") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "성공", content = @Content(schema = @Schema(implementation = CalendarAndTodoAllByRoleDto.class))), + @ApiResponse(responseCode = "401", description = "프로젝트를 찾을 수 없습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))) + + }) @GetMapping("/todoAll") public ResponseEntity> calendarTodoAll( @RequestParam(name = "projectId") Long projectId From 8a4a002f54b93e81c0c5af2590fb0475fd7b6540 Mon Sep 17 00:00:00 2001 From: UU_jeong <80961726+oU-Ua@users.noreply.github.com> Date: Mon, 1 Jan 2024 23:05:41 +0900 Subject: [PATCH 4/4] feat : Todo Swagger Setting --- src/main/java/mvc/promiseme/todo/controller/TodoController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/mvc/promiseme/todo/controller/TodoController.java b/src/main/java/mvc/promiseme/todo/controller/TodoController.java index cf48286..215ae0f 100644 --- a/src/main/java/mvc/promiseme/todo/controller/TodoController.java +++ b/src/main/java/mvc/promiseme/todo/controller/TodoController.java @@ -44,7 +44,7 @@ public ResponseEntity insertTodo(@RequestBody TodoRequestDTO todoRequest } @Operation(summary = "투두 조회", description = "projectId, userId, 날짜를 입력 받아 해당하는 TODO를 조회한다.") @ApiResponses({ - @ApiResponse(responseCode = "200", description = "성공", content = @Content(schema = @Schema(implementation = String.class))), + @ApiResponse(responseCode = "200", description = "성공", content = @Content(schema = @Schema(implementation = TodoResponseDTO.class))), @ApiResponse(responseCode = "401", description = "해당 프로젝트를 찾을 수 없습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))), @ApiResponse(responseCode = "401", description = "해당 사용자를 찾을 수 없습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))),