From 13f4cfe55b0e24d0bc003447e4b5361728b85090 Mon Sep 17 00:00:00 2001 From: hosung-222 Date: Sat, 4 Jan 2025 22:31:44 +0900 Subject: [PATCH] =?UTF-8?q?:sparkles:=20Feat:=20=ED=85=8C=EB=A7=88=20?= =?UTF-8?q?=EC=83=81=EC=84=B8=20=EC=A0=95=EB=B3=B4=20(=EB=B3=B4=EC=9C=A0?= =?UTF-8?q?=EC=97=AC=EB=B6=80=20=ED=8F=AC=ED=95=A8)=20=EB=A5=BC=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=ED=95=98=EB=8A=94=20API=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 테마샵에서 테마 상세 정보 조회 API - 관련 : #427 --- .../api/shop/controller/ShoppingController.java | 10 ++++++++-- .../external/api/shop/usecase/ShoppingUseCase.java | 6 ++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/application/external-api-v2/src/main/java/com/namo/spring/application/external/api/shop/controller/ShoppingController.java b/application/external-api-v2/src/main/java/com/namo/spring/application/external/api/shop/controller/ShoppingController.java index e164ed1f..fcc0a2a8 100644 --- a/application/external-api-v2/src/main/java/com/namo/spring/application/external/api/shop/controller/ShoppingController.java +++ b/application/external-api-v2/src/main/java/com/namo/spring/application/external/api/shop/controller/ShoppingController.java @@ -1,12 +1,15 @@ package com.namo.spring.application.external.api.shop.controller; +import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.namo.spring.application.external.api.shop.dto.ThemeResponse; import com.namo.spring.application.external.api.shop.usecase.ShoppingUseCase; +import com.namo.spring.application.external.global.common.security.authentication.SecurityUserDetails; import com.namo.spring.core.common.response.ResponseDto; import com.namo.spring.db.mysql.domains.shop.enums.ThemeType; @@ -27,6 +30,7 @@ public class ShoppingController { @GetMapping("") @Operation(summary = "판매 중인 테마 조회", description = "판매 중인 테마 목록을 조회합니다.") public ResponseDto getThemes( + @AuthenticationPrincipal SecurityUserDetails memberInfo, @Parameter(description = "조회할 테마 타입입니다.", example = "background // profile") @RequestParam("type") String type, @Parameter(description = "1 부터 시작하는 페이지 번호입니다 (기본값 1)", example = "1") @@ -43,9 +47,11 @@ public ResponseDto getThemes( @GetMapping("{/themeId}") @Operation(summary = "테마 상세 조회", description = "테마 상세 정보를 조회합니다.") public ResponseDto getThemeDetail( + @AuthenticationPrincipal SecurityUserDetails memberInfo, @Parameter(description = "조회할 테마 ID입니다.", example = "1") - @RequestParam("themeId") Long themeId) { + @PathVariable("themeId") Long themeId) { - return ResponseDto.onSuccess(shoppingUseCase.getThemeDetail(themeId)); + return ResponseDto.onSuccess(shoppingUseCase + .getThemeDetail(memberInfo.getUserId(), themeId)); } } diff --git a/application/external-api-v2/src/main/java/com/namo/spring/application/external/api/shop/usecase/ShoppingUseCase.java b/application/external-api-v2/src/main/java/com/namo/spring/application/external/api/shop/usecase/ShoppingUseCase.java index 9afdb754..0d14215f 100644 --- a/application/external-api-v2/src/main/java/com/namo/spring/application/external/api/shop/usecase/ShoppingUseCase.java +++ b/application/external-api-v2/src/main/java/com/namo/spring/application/external/api/shop/usecase/ShoppingUseCase.java @@ -23,4 +23,10 @@ public ThemeResponse.ThemeDtoList getThemesByType(ThemeType themeType, int page, Page themes = themeManageService.getSellingThemesByType(themeType, page, size); return ThemeConverter.toThemeDtoList(themes); } + + @Transactional(readOnly = true) + public ThemeResponse.ThemeInfoDto getThemeDetail(Long memberId, Long themeId) { + Theme theme = themeManageService.getThemeByIdWithOwnership(memberId, themeId); + return ThemeConverter.toThemeInfoDto(theme); + } }