1- import { StoreReviewRequestDto , StoreReviewResponseDto } from "../DTO/store_review_dto" ;
2- import { createStoreReview } from "../repository/store_review_repository" ;
1+ import { StoreReviewRequestDto , StoreReviewResponseDto , StoreReviewDto } from "../DTO/store_review_dto" ;
2+ import { createStoreReview , findReviewsByStoreId } from "../repository/store_review_repository" ;
33import { bufferToUuid , uuidToBuffer } from "../util/uuid_util" ;
44
55/**
@@ -18,4 +18,32 @@ export const addReview = async(userBuffer:Buffer,data:StoreReviewRequestDto):Pro
1818 storeId :bufferToUuid ( sBuf ) ,
1919 userId :bufferToUuid ( uBuf )
2020 } ;
21- }
21+ }
22+ /**
23+ * 특정 가게의 모든 리뷰를 조회하여 DTO 형태로 반환
24+ */
25+ export const getStoreReviewById = async ( storeIdStr : string ) : Promise < StoreReviewDto > => {
26+ //UUID 문자열을 DB 조회를 위한 Buffer로 변환
27+ const storeIdBuffer = Buffer . from ( uuidToBuffer ( storeIdStr ) ) ;
28+
29+ // 레포지토리 호출
30+ const reviews = await findReviewsByStoreId ( storeIdBuffer ) ;
31+
32+ return {
33+ reviews : reviews . map ( rev => ( {
34+ reviewId : bufferToUuid ( rev . review_id ) ,
35+ userId : bufferToUuid ( rev . user_id ) ,
36+ storeId : bufferToUuid ( rev . store_id ) ,
37+ userName : rev . user . user_name ,
38+ storeName : rev . store . store_name ,
39+ totalScore : rev . total_score ,
40+ kindness : rev . kindness_rating ,
41+ communication : rev . communication_rating ,
42+ settlement : rev . settlement_rating ,
43+ rest : rev . break_time_rating ,
44+ review : rev . review ,
45+ createdAt : rev . created_at ,
46+ updatedAt : rev . updated_at
47+ } ) )
48+ } ;
49+ }
0 commit comments