diff --git a/backend/src/main/java/codezap/template/controller/SpringDocTemplateController.java b/backend/src/main/java/codezap/template/controller/SpringDocTemplateController.java index 616adc60a..c83c86af5 100644 --- a/backend/src/main/java/codezap/template/controller/SpringDocTemplateController.java +++ b/backend/src/main/java/codezap/template/controller/SpringDocTemplateController.java @@ -5,6 +5,8 @@ import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; import codezap.global.swagger.error.ApiErrorResponse; import codezap.global.swagger.error.ErrorCase; @@ -12,6 +14,7 @@ import codezap.template.dto.request.CreateTemplateRequest; import codezap.template.dto.request.UpdateTemplateRequest; import codezap.template.dto.response.ExploreTemplatesResponse; +import codezap.template.dto.response.FindAllTagsResponse; import codezap.template.dto.response.FindAllTemplatesResponse; import codezap.template.dto.response.FindTemplateResponse; import io.swagger.v3.oas.annotations.Operation; @@ -67,6 +70,13 @@ ResponseEntity getTemplates( Pageable pageable ); + @Operation(summary = "태그 목록 조회", description = """ + 유저가 가지고 있는 태그 목록을 조회합니다. + """) + @ApiResponse(responseCode = "200", description = "태그 목록 조회 성공", + content = {@Content(schema = @Schema(implementation = FindAllTagsResponse.class))}) + ResponseEntity getTags(Long memberId); + @Operation(summary = "템플릿 단건 조회", description = "해당하는 식별자의 템플릿을 조회합니다.") @ApiResponse(responseCode = "200", description = "템플릿 단건 조회 성공", content = {@Content(schema = @Schema(implementation = ExploreTemplatesResponse.class))}) diff --git a/backend/src/main/java/codezap/template/controller/TemplateController.java b/backend/src/main/java/codezap/template/controller/TemplateController.java index 216abf45f..863650ddf 100644 --- a/backend/src/main/java/codezap/template/controller/TemplateController.java +++ b/backend/src/main/java/codezap/template/controller/TemplateController.java @@ -22,6 +22,7 @@ import codezap.template.dto.request.CreateTemplateRequest; import codezap.template.dto.request.UpdateTemplateRequest; import codezap.template.dto.response.ExploreTemplatesResponse; +import codezap.template.dto.response.FindAllTagsResponse; import codezap.template.dto.response.FindAllTemplatesResponse; import codezap.template.dto.response.FindTemplateResponse; import codezap.template.service.TemplateService; @@ -60,6 +61,12 @@ public ResponseEntity getTemplates( return ResponseEntity.ok(response); } + @GetMapping("/tags") + public ResponseEntity getTags(@RequestParam Long memberId) { + FindAllTagsResponse response = templateService.findAllTagsByMemberId(memberId); + return ResponseEntity.ok(response); + } + @GetMapping("/explore") public ResponseEntity explore() { return ResponseEntity.ok(templateService.findAll()); diff --git a/backend/src/main/java/codezap/template/dto/response/FindAllTagsResponse.java b/backend/src/main/java/codezap/template/dto/response/FindAllTagsResponse.java new file mode 100644 index 000000000..a7c52db88 --- /dev/null +++ b/backend/src/main/java/codezap/template/dto/response/FindAllTagsResponse.java @@ -0,0 +1,8 @@ +package codezap.template.dto.response; + +import java.util.List; + +public record FindAllTagsResponse( + List tags +) { +} diff --git a/backend/src/main/java/codezap/template/repository/TemplateRepository.java b/backend/src/main/java/codezap/template/repository/TemplateRepository.java index 7c504960d..9b8d0ebf6 100644 --- a/backend/src/main/java/codezap/template/repository/TemplateRepository.java +++ b/backend/src/main/java/codezap/template/repository/TemplateRepository.java @@ -97,4 +97,5 @@ Page