Skip to content

Commit

Permalink
feat: 장바구니 저장 기능
Browse files Browse the repository at this point in the history
  • Loading branch information
Jeongh00 committed Jul 22, 2024
1 parent d373e30 commit 47bff53
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.likelion.apimodule.cart.application;

import com.likelion.apimodule.cart.dto.CartSaveReq;
import com.likelion.apimodule.security.util.JwtUtil;
import com.likelion.coremodule.cart.domain.Cart;
import com.likelion.coremodule.cart.service.CartQueryService;
import com.likelion.coremodule.menu.domain.Menu;
import com.likelion.coremodule.menu.service.MenuQueryService;
import com.likelion.coremodule.user.application.UserQueryService;
import com.likelion.coremodule.user.domain.User;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
@RequiredArgsConstructor
public class CartSaveUseCase {

private final CartQueryService cartQueryService;
private final JwtUtil jwtUtil;
private final UserQueryService userQueryService;
private final MenuQueryService menuQueryService;

public void saveMyCart(String accessToken, CartSaveReq saveReq) {

String email = jwtUtil.getEmail(accessToken);
User user = userQueryService.findByEmail(email);

Menu menu = menuQueryService.findMenuById(saveReq.menuId());

final Cart cart = Cart.builder().user(user).menu(menu).quantity(saveReq.quantity()).build();
cartQueryService.saveCart(cart);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.likelion.apimodule.cart.dto;

public record CartSaveReq(
Long menuId,
Integer quantity
) {
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.likelion.apimodule.cart.presentation;

import com.likelion.apimodule.cart.application.CartFindUseCase;
import com.likelion.apimodule.cart.application.CartSaveUseCase;
import com.likelion.apimodule.cart.dto.CartInfo;
import com.likelion.apimodule.cart.dto.CartSaveReq;
import com.likelion.commonmodule.exception.common.ApplicationResponse;
import com.likelion.commonmodule.security.util.AuthConsts;
import io.swagger.v3.oas.annotations.Operation;
Expand All @@ -10,10 +12,7 @@
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;

import java.util.List;

Expand All @@ -25,6 +24,7 @@
public class CartController {

private final CartFindUseCase cartFindUseCase;
private final CartSaveUseCase cartSaveUseCase;

// 장바구니 조회
@GetMapping
Expand All @@ -46,6 +46,23 @@ public ApplicationResponse<List<CartInfo>> getMyCartInfo(@RequestHeader(AuthCons
}

// 장바구니 저장
@PostMapping
@ApiResponses(
value = {
@ApiResponse(
responseCode = "200",
description = "나의 장바구니 저장 성공",
useReturnTypeSchema = true
)
}
)
@Operation(summary = "나의 장바구니 저장 API", description = "나의 장바구니 저장 API 입니다.")
public ApplicationResponse<String> saveMyCart(@RequestHeader(AuthConsts.ACCESS_TOKEN_HEADER) String accessToken,
@RequestBody CartSaveReq saveReq) {

cartSaveUseCase.saveMyCart(accessToken, saveReq);
return ApplicationResponse.ok("장바구니 저장 완료");
}

// 장바구니 삭제
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@

@Builder
@Getter
@Setter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@Entity
Expand Down

0 comments on commit 47bff53

Please sign in to comment.