Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@

import com.perfumepedia.perfumepedia.domain.perfume.dto.PerfumeUpdateReq;
import com.perfumepedia.perfumepedia.domain.perfume.service.PerfumeService;
import com.perfumepedia.perfumepedia.domain.perfume.service.RequestPerfumeService;
import com.perfumepedia.perfumepedia.domain.perfumeNote.dto.PerfumeDetailResponse;
import com.perfumepedia.perfumepedia.domain.perfumeNote.dto.RequestPerfumeDetailReq;
import com.perfumepedia.perfumepedia.global.enums.NoneResponse;
import com.perfumepedia.perfumepedia.global.response.Response;
import com.perfumepedia.perfumepedia.global.response.SuccessResponse;
import io.swagger.v3.oas.annotations.tags.Tag;
Expand All @@ -17,10 +20,12 @@
public class PerfumeController {

private final PerfumeService perfumeService;
private final RequestPerfumeService requestPerfumeService;

@Autowired
public PerfumeController(PerfumeService perfumeService) {
public PerfumeController(PerfumeService perfumeService, RequestPerfumeService requestPerfumeService) {
this.perfumeService = perfumeService;
this.requestPerfumeService = requestPerfumeService;
}

/**
Expand Down Expand Up @@ -48,5 +53,33 @@ public ResponseEntity<Response<PerfumeDetailResponse>> getPerfumeDetail(@PathVar
return Response.success(response);
}

/**
* 향수 등록 api
*/
@PostMapping("/perfumes/admins")
public ResponseEntity<Response<NoneResponse>> registerPerfume(@RequestBody RequestPerfumeDetailReq requestPerfumeDetailReq) {
SuccessResponse<NoneResponse> response = requestPerfumeService.registerPerfume(requestPerfumeDetailReq);
return Response.success(response);
}

/**
* 향수 수정 api
*/
@PutMapping("/perfumes/admins/{perfumeId}")
public ResponseEntity<Response<NoneResponse>> updatePerfume(@RequestBody RequestPerfumeDetailReq requestPerfumeDetailReq, @PathVariable Long perfumeId) {
SuccessResponse<NoneResponse> response = requestPerfumeService.updatePerfume(requestPerfumeDetailReq, perfumeId);
return Response.success(response);
}

/**
* 향수 삭제 api
*/
@DeleteMapping("/perfumes/admins/{perfumeId}")
public ResponseEntity<Response<NoneResponse>> deletePerfume(@PathVariable Long perfumeId) {
SuccessResponse<NoneResponse> response = requestPerfumeService.deletePerfume(perfumeId);
return Response.success(response);
}



}
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,11 @@ public Perfume(Long id, String name, int price, Brand brand) {
this.price = price;
this.brand = brand;
}

// 수정 메서드
public void update(String name, int price, Brand brand) {
this.name = name;
this.price = price;
this.brand = brand;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -225,13 +225,16 @@ public SuccessResponse<NoneResponse> acceptUpdateRequest(Request request) {
.build()
));

// 기존 향수의 정보를 요청된 정보로 업데이트
perfume = Perfume.builder()
.id(perfume.getId())
.name(reqPerfume.getName())
.price(reqPerfume.getPrice())
.brand(brand)
.build();
// 기존 향수의 정보를 요청된 정보로 업데이트 - 영속성 문제?
// perfume = Perfume.builder()
// .id(perfume.getId())
// .name(reqPerfume.getName())
// .price(reqPerfume.getPrice())
// .brand(brand)
// .build();

perfume.update(reqPerfume.getName(), reqPerfume.getPrice(), brand);


perfumeRepository.save(perfume);

Expand Down Expand Up @@ -267,6 +270,7 @@ public SuccessResponse<NoneResponse> acceptUpdateRequest(Request request) {
}



/**
* 삭제 요청 처리
*/
Expand All @@ -279,12 +283,15 @@ public SuccessResponse<NoneResponse> acceptDeleteRequest(Request request) {
List<PerfumeNote> perfumeNotes = perfumeNoteRepository.findByPerfume(perfume);
perfumeNoteRepository.deleteAll(perfumeNotes);

// 새로운 Request 객체 생성 Perfume, requestPerfume을 null로 설정
Request updatedRequest = new Request(request.getId(), request.getRequestType(), RequestStatus.APPROVED,
request.getUserId(), null, null);

requestRepository.save(updatedRequest);

// 향수 삭제
perfumeRepository.delete(perfume);

request.updateRequestStatus(RequestStatus.APPROVED);
requestRepository.save(request);

return new SuccessResponse<>(DELETE_COMPLETED, NoneResponse.NONE);
}

Expand Down
Loading
Loading