작업한 코드
@RequiredArgsConstructor
@Service
public class SellerService {
private final ProductRepository productRepository;
// 나의 판매상품 등록
@Transactional
public void registerProduct(ProductRegisterRequest productRegisterRequest) {
Product product = new Product(productRegisterRequest.getTitle(), productRegisterRequest.getPrice(), productRegisterRequest.getProductDetail());
productRepository.save(product);
// return new SellerProductResponse(product);
}
// 나의 전체 판매상품 조회
@Transactional
public List<SellerProductResponse> getSellerProductList() {
List<Product> products = productRepository.findAllByOrderByModifiedAtDesc();
List<SellerProductResponse> sellerProductResponses = new ArrayList<>();
for (Product product : products) {
sellerProductResponses.add(new SellerProductResponse(product));
}
return sellerProductResponses;
}
// 나의 개별 판매상품 조회
@Transactional
public SellerProductDetailResponse getSellerProduct(Long productId) {
Product product = productRepository.findById(productId).orElseThrow(
() -> new IllegalArgumentException("id가 존재하지 않습니다.")
);
return new SellerProductDetailResponse(product);
}
// 나의 판매상품 수정
@Transactional
public SellerProductResponse updateSellerProduct(Long productId, ProductUpdateRequest productUpdateRequest, User user) {
Product product = productRepository.findById(productId).orElseThrow(
() -> new IllegalArgumentException("id가 존재하지 않습니다.")
);
if (product.getSeller().getId() != user.getId()) {
throw new IllegalArgumentException("판매자가 아닙니다.");
}
product.update(productUpdateRequest.getTitle(), productUpdateRequest.getPrice(), productUpdateRequest.getProductDetail());
productRepository.save(product);
return new SellerProductResponse(product);
}
}
@RestController
@RequiredArgsConstructor
public class SellerController {
private final SellerService sellerService;
// 나의 판매상품 등록
@PostMapping("/sellers/products")
public ResponseEntity<StatusResponse> registerProduct(@RequestBody ProductRegisterRequest productRegisterRequest) {
StatusResponse statusResponse = new StatusResponse(HttpStatus.CREATED.value(), "등록 완료");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("application", "json", StandardCharsets.UTF_8));
sellerService.registerProduct(productRegisterRequest);
return new ResponseEntity<>(statusResponse, headers, HttpStatus.CREATED);
}
// 나의 전체 판매상품 조회
@GetMapping("/sellers/products/list")
public List<SellerProductResponse> getSellerProductList() {
return sellerService.getSellerProductList();
}
// 나의 개별 판매상품 조회
@GetMapping("/sellers/products/{productId}")
public SellerProductDetailResponse getSellerProduct(@PathVariable Long productId) {
return sellerService.getSellerProduct(productId);
}
// 나의 판매상품 수정
@PutMapping("/sellers/products/{productId}")
public ResponseEntity<StatusResponse> updateSellerProduct(@PathVariable Long productId, @RequestBody ProductUpdateRequest productUpdateRequest) {
// User user = new User();
StatusResponse statusResponse = new StatusResponse(HttpStatus.CREATED.value(), "등록 완료");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("application", "json", StandardCharsets.UTF_8));
sellerService.updateSellerProduct(productId, productUpdateRequest, user);
return new ResponseEntity<>(statusResponse, headers, HttpStatus.CREATED);
}
}
오늘 한 부분은 저번 프로젝트의 Post와 유사하다고 생각을 해서
쉬운 부분은 후딱 하고 다른 부분에 집중하자! 하고
우다다 했는데
다시 봐보니 뭔가 이상하다....?
이렇게 하는 게 아닌 거 같은걸......😨
수정 부분은 다시 해야함 오류 user를 어케 해야할 거 같은데.. 이리저리 만져봐야 함
근데 지금 잠을 못자서 그런가 머리가 넘 깨질 거 같아서,, 아무래도 좀 쉬다가 다시 봐봐야 할 듯ㅜ