5주차 강의에서 살짝 정리한 SRP에 대한 내용으로 코드를 작성하도록 생각했다.
메서드나 클래스는 하나의 기능만이 있어야한다. 라고 생각을했었다.
그렇다면 Controller - Service - Repository는 어떤 역할을 가지고있을까??라는 생각이 들었다.
그렇다면 해당 내용을 가지고 코드를 분리해보는 작업을 진행하겠습니다.
@RestController
@RequiredArgsConstructor
@Slf4j
@RequestMapping("/api/v1")
public class FruitShopController {
private final FruitShopService fruitShopService;
/**
* 과일을 입고(생성) 하는 컨트롤러입니다.
* @param request 입력받은 과일 정보의 값
*/
@PostMapping("/fruit")
public void stockInFruit(@RequestBody FruitStockRequestDto request){
fruitShopService.warehousingFruit(request);
}
/**
* 과일이 판매를 위한 컨트롤러 입니다.
* @param request 과일 판매를 위한 id값
*/
@PutMapping("/fruit")
public void fruitSaleProgress(@RequestBody FruitSaleRequestDto request){
fruitShopService.fruitSale(request);
}
/**
* 과일에 대한 판매 및 미 판매에 대한 조회 결과를 나타냅니다.
* @return
*/
@GetMapping("/fruit/stat")
public List<CalculatorSaleResponseDto> notSaleAndSaleSumAmount(@RequestParam("name") String name){
return fruitShopService.calculatorSale(name);
}
/**
* 과일에 대한 전체 조회 결과를 나타냅니다.
* @return
*/
@GetMapping("/fruits")
public List<FruitListResponseDto> fruitList(){
return fruitShopService.findAll();
}
}