Skip to content

Commit

Permalink
✏️ [FIX] 스티커팩 불러오기에서 bookUuid를 반환하도록 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
ddongseop committed Jan 17, 2024
1 parent db1c152 commit 4ed479d
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@
import io.swagger.v3.oas.annotations.tags.Tag;
import org.sopt.lequuServer.domain.sticker.dto.request.StickerPostRequestDto;
import org.sopt.lequuServer.domain.sticker.dto.response.StickerPackResponseDto;
import org.sopt.lequuServer.domain.sticker.dto.response.StickerPacksResponseDto;
import org.sopt.lequuServer.domain.sticker.dto.response.StickerPostResponseDto;
import org.sopt.lequuServer.global.common.dto.ApiResponse;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;

import java.security.Principal;
import java.util.List;

@Tag(name = "Sticker", description = "스티커 API")
@SecurityRequirement(name = "JWT Authorization")
Expand All @@ -27,7 +27,7 @@ public interface StickerApi {
content = @Content(array = @ArraySchema(schema = @Schema(implementation = StickerPackResponseDto.class)))
)
@Operation(summary = "스티커팩 목록 불러오기")
public ResponseEntity<ApiResponse<List<StickerPackResponseDto>>> getStickerPackList(@Schema(example = "1") @PathVariable Long bookId);
public ResponseEntity<ApiResponse<StickerPacksResponseDto>> getStickerPackList(@Schema(example = "1") @PathVariable Long bookId);

@io.swagger.v3.oas.annotations.responses.ApiResponse(
responseCode = "201",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,16 @@

import lombok.RequiredArgsConstructor;
import org.sopt.lequuServer.domain.sticker.dto.request.StickerPostRequestDto;
import org.sopt.lequuServer.domain.sticker.dto.response.StickerPackResponseDto;
import org.sopt.lequuServer.domain.sticker.dto.response.StickerPacksResponseDto;
import org.sopt.lequuServer.domain.sticker.dto.response.StickerPostResponseDto;
import org.sopt.lequuServer.domain.sticker.facade.StickerFacade;
import org.sopt.lequuServer.domain.sticker.service.StickerService;
import org.sopt.lequuServer.global.auth.jwt.JwtProvider;
import org.sopt.lequuServer.global.common.dto.ApiResponse;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.security.Principal;
import java.util.List;

import static org.sopt.lequuServer.global.exception.enums.SuccessType.GET_STICKER_PACK_SUCCESS;
import static org.sopt.lequuServer.global.exception.enums.SuccessType.POST_STICKER_SUCCESS;
Expand All @@ -23,12 +21,11 @@
@RequiredArgsConstructor
public class StickerController implements StickerApi {

private final StickerService stickerService;
private final StickerFacade stickerFacade;

@GetMapping("/{bookId}")
public ResponseEntity<ApiResponse<List<StickerPackResponseDto>>> getStickerPackList(@PathVariable Long bookId) {
return ResponseEntity.ok(ApiResponse.success(GET_STICKER_PACK_SUCCESS, stickerService.getStickerPackList(bookId)));
public ResponseEntity<ApiResponse<StickerPacksResponseDto>> getStickerPackList(@PathVariable Long bookId) {
return ResponseEntity.ok(ApiResponse.success(GET_STICKER_PACK_SUCCESS, stickerFacade.getStickerPackList(bookId)));
}

@PostMapping
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package org.sopt.lequuServer.domain.sticker.dto.response;

import io.swagger.v3.oas.annotations.media.Schema;

import java.util.List;

public record StickerPacksResponseDto(

@Schema(description = "레큐북 UUID", example = "ee4f66f9-9cf4-4b28-90f4-f71d0ecba021")
String bookUuid,

List<StickerPackResponseDto> stickerPackList
) {
public static StickerPacksResponseDto of(String bookUuid, List<StickerPackResponseDto> stickerPackList) {
return new StickerPacksResponseDto(
bookUuid,
stickerPackList
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,11 @@

public record StickerPostResponseDto(

@Schema(description = "레큐북 UUID", example = "ee4f66f9-9cf4-4b28-90f4-f71d0ecba021")
String bookUuid,

@Schema(description = "생성된 부착 스티커 고유 id", example = "1")
Long postedStickerId
) {
public static StickerPostResponseDto of(String bookUuid, PostedSticker postedSticker) {
public static StickerPostResponseDto of(PostedSticker postedSticker) {
return new StickerPostResponseDto(
bookUuid,
postedSticker.getId()
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import org.sopt.lequuServer.domain.member.model.Member;
import org.sopt.lequuServer.domain.member.repository.MemberRepository;
import org.sopt.lequuServer.domain.sticker.dto.request.StickerPostRequestDto;
import org.sopt.lequuServer.domain.sticker.dto.response.StickerPacksResponseDto;
import org.sopt.lequuServer.domain.sticker.dto.response.StickerPostResponseDto;
import org.sopt.lequuServer.domain.sticker.model.PostedSticker;
import org.sopt.lequuServer.domain.sticker.model.Sticker;
Expand Down Expand Up @@ -35,4 +36,10 @@ public StickerPostResponseDto postSticker(Long memberId, StickerPostRequestDto r

return stickerService.postSticker(postedSticker, member, book);
}

public StickerPacksResponseDto getStickerPackList(Long bookId) {

Book book = bookRepository.findByIdOrThrow(bookId);
return stickerService.getStickerPackList(bookId, book.getUuid());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@
import org.sopt.lequuServer.domain.book.model.Book;
import org.sopt.lequuServer.domain.member.model.Member;
import org.sopt.lequuServer.domain.sticker.dto.response.StickerPackResponseDto;
import org.sopt.lequuServer.domain.sticker.dto.response.StickerPacksResponseDto;
import org.sopt.lequuServer.domain.sticker.dto.response.StickerPostResponseDto;
import org.sopt.lequuServer.domain.sticker.model.PostedSticker;
import org.sopt.lequuServer.domain.sticker.model.Sticker;
import org.sopt.lequuServer.domain.sticker.repository.PostedStickerRepository;
import org.sopt.lequuServer.domain.sticker.repository.StickerRepository;
import org.springframework.stereotype.Service;
Expand All @@ -22,10 +24,11 @@ public class StickerService {
private final StickerRepository stickerRepository;
private final PostedStickerRepository postedStickerRepository;

public List<StickerPackResponseDto> getStickerPackList(Long bookId) {
public StickerPacksResponseDto getStickerPackList(Long bookId, String bookUuid) {
// 공통 스티커팩 + 해당 레큐북 스티커팩
List<Long> bookIds = Arrays.asList(0L, bookId);
return StickerPackResponseDto.of(stickerRepository.findStickersByBookIds(bookIds));
List<Sticker> stickers = stickerRepository.findStickersByBookIds(Arrays.asList(0L, bookId));

return StickerPacksResponseDto.of(bookUuid, StickerPackResponseDto.of(stickers));
}

@Transactional
Expand All @@ -34,6 +37,6 @@ public StickerPostResponseDto postSticker(PostedSticker postedSticker, Member me
member.addPostedSticker(postedSticker);
book.addPostedSticker(postedSticker);

return StickerPostResponseDto.of(book.getUuid(), postedStickerRepository.save(postedSticker));
return StickerPostResponseDto.of(postedStickerRepository.save(postedSticker));
}
}

0 comments on commit 4ed479d

Please sign in to comment.