Skip to content

Commit

Permalink
[Chore] #268 - Menu DTO 네이밍 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
parkrootseok committed May 10, 2023
1 parent 05ef5b0 commit d21aa25
Show file tree
Hide file tree
Showing 7 changed files with 59 additions and 63 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import shop.cazait.domain.cafe.exception.CafeException;
import shop.cazait.domain.cafemenu.dto.GetCafeMenuRes;
import shop.cazait.domain.cafemenu.dto.PatchCafeMenuReq;
import shop.cazait.domain.cafemenu.dto.PatchCafeMenuRes;
import shop.cazait.domain.cafemenu.dto.PostCafeMenuReq;
import shop.cazait.domain.cafemenu.dto.PostCafeMenuRes;
import shop.cazait.domain.cafemenu.dto.request.MenuUpdateInDTO;
import shop.cazait.domain.cafemenu.dto.response.MenuListOutDTO;
import shop.cazait.domain.cafemenu.dto.response.MenuUpdateOutDTO;
import shop.cazait.domain.cafemenu.dto.request.MenuCreateInDTO;
import shop.cazait.domain.cafemenu.dto.response.MenuCreateOutDTO;
import shop.cazait.domain.cafemenu.service.CafeMenuService;
import shop.cazait.global.common.dto.response.FailResponse;
import shop.cazait.global.common.dto.response.SuccessResponse;
Expand All @@ -58,7 +58,7 @@ public class CafeMenuApiController {
@ApiResponse(
responseCode = "201",
description = "메뉴 등록 성공",
content = @Content(schema = @Schema(implementation = PostCafeMenuRes.class))
content = @Content(schema = @Schema(implementation = MenuCreateOutDTO.class))
),
@ApiResponse(
responseCode = "400",
Expand All @@ -72,13 +72,13 @@ public class CafeMenuApiController {
),
})
@PostMapping(value ="/cafe/{cafeId}", consumes = {MediaType.MULTIPART_FORM_DATA_VALUE})
public SuccessResponse<PostCafeMenuRes> registerMenu(@PathVariable Long cafeId,
@Parameter(description = "메뉴 정보", example = "{\"name\": \"아메리카노\", \"description\": \"맛있어!\", \"price\": 4500}")
public SuccessResponse<MenuCreateOutDTO> registerMenu(@PathVariable Long cafeId,
@Parameter(description = "메뉴 정보", example = "{\"name\": \"아메리카노\", \"description\": \"맛있어!\", \"price\": 4500}")
@RequestParam @Valid String information,
@Parameter(description = "메뉴 이미지") @RequestPart(required = false) MultipartFile image)
@Parameter(description = "메뉴 이미지") @RequestPart(required = false) MultipartFile image)
throws CafeException, IOException {
PostCafeMenuReq postCafeMenuReq = objectMapper.readValue(information, new TypeReference<>() {});
return new SuccessResponse<>(CREATE_MENU, cafeMenuService.registerMenu(cafeId, postCafeMenuReq, image));
MenuCreateInDTO menuCreateInDTO = objectMapper.readValue(information, new TypeReference<>() {});
return new SuccessResponse<>(CREATE_MENU, cafeMenuService.registerMenu(cafeId, menuCreateInDTO, image));
}

@Operation(summary = "카페 메뉴 조회", description = "카페 ID를 받아 해당 카페에 대한 모든 메뉴를 조회한다.")
Expand All @@ -90,9 +90,9 @@ public SuccessResponse<PostCafeMenuRes> registerMenu(@PathVariable Long cafeId,
@ApiResponse(responseCode = "404", description = "존재하지 않는 카페"),
})
@GetMapping("/cafe/{cafeId}")
public SuccessResponse<List<GetCafeMenuRes>> getMenu(@PathVariable Long cafeId) {
public SuccessResponse<List<MenuListOutDTO>> getMenu(@PathVariable Long cafeId) {

List<GetCafeMenuRes> result = cafeMenuService.getMenu(cafeId);
List<MenuListOutDTO> result = cafeMenuService.getMenu(cafeId);
SuccessStatus resultStatus = SUCCESS;
if (result == null) {
resultStatus = NO_CONTENT_SUCCESS;
Expand All @@ -109,13 +109,13 @@ public SuccessResponse<List<GetCafeMenuRes>> getMenu(@PathVariable Long cafeId)
@ApiResponse(responseCode = "404", description = "존재하지 않는 카페"),
})
@PatchMapping("/{menuId}")
public SuccessResponse<PatchCafeMenuRes> updateMenu(@PathVariable Long menuId,
public SuccessResponse<MenuUpdateOutDTO> updateMenu(@PathVariable Long menuId,
@Parameter(description = "수정할 메뉴 정보 : {\"name\": \"아메리카노\", \"description\": \"맛있어!\", \"price\": 4500}")
@RequestParam @Valid String menuInfo,
@Parameter(description = "수정할 메뉴 이미지") @RequestPart(required = false) MultipartFile menuImage)
throws IOException {
PatchCafeMenuReq patchCafeMenuReq = objectMapper.readValue(menuInfo, new TypeReference<>() {});
return new SuccessResponse<>(SUCCESS, cafeMenuService.updateMenu(menuId, patchCafeMenuReq, menuImage));
MenuUpdateInDTO menuUpdateInDTO = objectMapper.readValue(menuInfo, new TypeReference<>() {});
return new SuccessResponse<>(SUCCESS, cafeMenuService.updateMenu(menuId, menuUpdateInDTO, menuImage));
}

@Operation(summary = "카페 메뉴 삭제", description = "카페 메뉴 ID를 받아 삭제한다.")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
package shop.cazait.domain.cafemenu.dto;
package shop.cazait.domain.cafemenu.dto.request;

import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
import java.util.stream.Collectors;
import javax.validation.constraints.NotBlank;
import lombok.AccessLevel;
import lombok.Data;
import lombok.NoArgsConstructor;
import shop.cazait.domain.cafe.entity.Cafe;
import shop.cazait.domain.cafemenu.entity.CafeMenu;

@Schema(description = "메뉴 등록 Request : 등록할 메뉴에 대한 정보")
@Schema(name = "메뉴 등록 Request", description = "등록할 메뉴에 대한 정보")
@Data
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class PostCafeMenuReq {
public class MenuCreateInDTO {

@Schema(description = "이름", example = "아이스 아메리카노", required = true)
@NotBlank(message = "메뉴 이름을 입력해주세요.")
Expand All @@ -26,12 +24,12 @@ public class PostCafeMenuReq {
@NotBlank(message = "메뉴 가격을 입력해주세요.")
private Integer price;

public static CafeMenu toEntity(Cafe cafe, PostCafeMenuReq postCafeMenuReq, String uploadFileName) {
public static CafeMenu toEntity(Cafe cafe, MenuCreateInDTO menuCreateInDTO, String uploadFileName) {
return CafeMenu.builder()
.cafe(cafe)
.name(postCafeMenuReq.getName())
.description(postCafeMenuReq.getDescription())
.price(postCafeMenuReq.getPrice())
.name(menuCreateInDTO.getName())
.description(menuCreateInDTO.getDescription())
.price(menuCreateInDTO.getPrice())
.imageUrl(uploadFileName)
.build();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package shop.cazait.domain.cafemenu.dto;
package shop.cazait.domain.cafemenu.dto.request;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AccessLevel;
import lombok.Data;
import lombok.NoArgsConstructor;

@Schema(description = "메뉴 수정 Request : 수정할 메뉴에 대한 정보")
@Schema(name = "메뉴 수정 Request", description = "수정할 메뉴에 대한 정보")
@Data
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class PatchCafeMenuReq {
public class MenuUpdateInDTO {

@Schema(description = "이름", example = "아이스 아메리카노 (미수정 : null)")
private String name;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
package shop.cazait.domain.cafemenu.dto;
package shop.cazait.domain.cafemenu.dto.response;

import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
import java.util.stream.Collectors;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import shop.cazait.domain.cafemenu.entity.CafeMenu;

@Schema(description = "등록 메뉴 Response : 등록을 완료한 메뉴 정보")
@Schema(name = "등록 메뉴 Response", description = "등록을 완료한 메뉴 정보")
@Getter
@Builder(access = AccessLevel.PRIVATE)
public class PostCafeMenuRes {
public class MenuCreateOutDTO {

@Schema(description = "ID", example = "1")
private Long menuId;
Expand All @@ -28,9 +26,9 @@ public class PostCafeMenuRes {
@Schema(description = "이미지 URL", example = "americano.png")
private String imageUrl;

public static PostCafeMenuRes of(CafeMenu menu) {
public static MenuCreateOutDTO of(CafeMenu menu) {

return PostCafeMenuRes.builder()
return MenuCreateOutDTO.builder()
.menuId(menu.getId())
.name(menu.getName())
.description(menu.getDescription())
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package shop.cazait.domain.cafemenu.dto;
package shop.cazait.domain.cafemenu.dto.response;

import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
Expand All @@ -8,10 +8,10 @@
import lombok.Getter;
import shop.cazait.domain.cafemenu.entity.CafeMenu;

@Schema(description = "메뉴 조회 Response : 카페의 모든 메뉴에 대한 정보")
@Schema(name = "메뉴 조회 Response", description = "카페의 모든 메뉴에 대한 정보")
@Getter
@Builder(access = AccessLevel.PRIVATE)
public class GetCafeMenuRes {
public class MenuListOutDTO {

@Schema(description = "메뉴 ID", example = "1")
private Long cafeMenuId;
Expand All @@ -28,9 +28,9 @@ public class GetCafeMenuRes {
@Schema(description = "이미지 URL", example = "iceAmericano.png")
private String imageUrl;

public static List<GetCafeMenuRes> of(List<CafeMenu> menus) {
public static List<MenuListOutDTO> of(List<CafeMenu> menus) {
return menus.stream()
.map(menu -> GetCafeMenuRes.builder()
.map(menu -> MenuListOutDTO .builder()
.cafeMenuId(menu.getId())
.name(menu.getName())
.description(menu.getDescription())
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package shop.cazait.domain.cafemenu.dto;
package shop.cazait.domain.cafemenu.dto.response;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import shop.cazait.domain.cafemenu.entity.CafeMenu;

@Schema(description = "메뉴 수정 Response : 수정한 메뉴에 대한 정보")
@Schema(name = "메뉴 수정 Response ", description = "수정한 메뉴에 대한 정보")
@Getter
@Builder(access = AccessLevel.PRIVATE)
public class PatchCafeMenuRes {
public class MenuUpdateOutDTO {

@Schema(description = "메뉴 ID", example = "1")
private Long cafeMenuId;
Expand All @@ -29,8 +29,8 @@ public class PatchCafeMenuRes {
@Schema(description = "이미지 URL", example = "iceVanillaLatte.png")
private String imageUrl;

public static PatchCafeMenuRes of(CafeMenu menu) {
return PatchCafeMenuRes.builder()
public static MenuUpdateOutDTO of(CafeMenu menu) {
return MenuUpdateOutDTO.builder()
.cafeMenuId(menu.getId())
.cafeId(menu.getCafe().getId())
.name(menu.getName())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@
import shop.cazait.domain.cafe.entity.Cafe;
import shop.cazait.domain.cafe.exception.CafeException;
import shop.cazait.domain.cafe.repository.CafeRepository;
import shop.cazait.domain.cafemenu.dto.GetCafeMenuRes;
import shop.cazait.domain.cafemenu.dto.PatchCafeMenuReq;
import shop.cazait.domain.cafemenu.dto.PatchCafeMenuRes;
import shop.cazait.domain.cafemenu.dto.PostCafeMenuReq;
import shop.cazait.domain.cafemenu.dto.PostCafeMenuRes;
import shop.cazait.domain.cafemenu.dto.request.MenuUpdateInDTO;
import shop.cazait.domain.cafemenu.dto.response.MenuListOutDTO;
import shop.cazait.domain.cafemenu.dto.response.MenuUpdateOutDTO;
import shop.cazait.domain.cafemenu.dto.request.MenuCreateInDTO;
import shop.cazait.domain.cafemenu.dto.response.MenuCreateOutDTO;
import shop.cazait.domain.cafemenu.entity.CafeMenu;
import shop.cazait.domain.cafemenu.exception.CafeMenuException;
import shop.cazait.domain.cafemenu.repository.CafeMenuRepository;
Expand All @@ -40,18 +40,18 @@ public class CafeMenuService {
* 카페 메뉴 조회
*/
@Transactional(readOnly = true)
public List<GetCafeMenuRes> getMenu(Long cafeId) {
public List<MenuListOutDTO> getMenu(Long cafeId) {

List<CafeMenu> findMenus = cafeMenuRepository.findAllByCafeId(cafeId).orElse(null);
return GetCafeMenuRes.of(findMenus);
return MenuListOutDTO.of(findMenus);

}


/**
* 카페 메뉴 등록
*/
public PostCafeMenuRes registerMenu(Long cafeId, PostCafeMenuReq postCafeMenuReq, MultipartFile menuImage)
public MenuCreateOutDTO registerMenu(Long cafeId, MenuCreateInDTO menuCreateInDTO, MultipartFile menuImage)
throws CafeException, IOException {

String uploadFileName = null;
Expand All @@ -61,9 +61,9 @@ public PostCafeMenuRes registerMenu(Long cafeId, PostCafeMenuReq postCafeMenuReq
uploadFileName = awsS3Servicel.uploadImage(menuImage);
}

CafeMenu menu = PostCafeMenuReq.toEntity(findCafe, postCafeMenuReq, uploadFileName);
CafeMenu menu = MenuCreateInDTO.toEntity(findCafe, menuCreateInDTO, uploadFileName);
CafeMenu addMenu = cafeMenuRepository.save(menu);
return PostCafeMenuRes.of(addMenu);
return MenuCreateOutDTO.of(addMenu);
}

private Cafe getCafe(Long cafeId) throws CafeException {
Expand All @@ -79,23 +79,23 @@ private Cafe getCafe(Long cafeId) throws CafeException {
/**
* 카페 메뉴 수정
*/
public PatchCafeMenuRes updateMenu(Long menuId, PatchCafeMenuReq patchCafeMenuReq, MultipartFile menuImage)
public MenuUpdateOutDTO updateMenu(Long menuId, MenuUpdateInDTO menuUpdateInDTO, MultipartFile menuImage)
throws IOException {

CafeMenu findMenu = cafeMenuRepository
.findById(menuId)
.orElseThrow(() -> new CafeMenuException(NOT_EXIST_MENU));

if (patchCafeMenuReq.getName() != NOT_UPDATE_NAME) {
findMenu.changeName(patchCafeMenuReq.getName());
if (menuUpdateInDTO.getName() != NOT_UPDATE_NAME) {
findMenu.changeName(menuUpdateInDTO.getName());
}

if (patchCafeMenuReq.getDescription() != NOT_UPDATE_DESCRIPTION) {
findMenu.changeDescription(patchCafeMenuReq.getDescription());
if (menuUpdateInDTO.getDescription() != NOT_UPDATE_DESCRIPTION) {
findMenu.changeDescription(menuUpdateInDTO.getDescription());
}

if (patchCafeMenuReq.getPrice() != NOT_UPDATE_PRICE) {
findMenu.changePrice(patchCafeMenuReq.getPrice());
if (menuUpdateInDTO.getPrice() != NOT_UPDATE_PRICE) {
findMenu.changePrice(menuUpdateInDTO.getPrice());
}

if (menuImage.getName() != NOT_UPDATE_IMAGE) {
Expand All @@ -104,7 +104,7 @@ public PatchCafeMenuRes updateMenu(Long menuId, PatchCafeMenuReq patchCafeMenuRe

CafeMenu updateCafeMenu = cafeMenuRepository.save(findMenu);

return PatchCafeMenuRes.of(updateCafeMenu);
return MenuUpdateOutDTO.of(updateCafeMenu);

}

Expand Down

0 comments on commit d21aa25

Please sign in to comment.