возвращает 405 при PUT запросе
Все прочие методы работают, только при отправке этих двух возвращает ошибку 405.
'''
@Service
public class ComfyService {
public Product sale(Product saledProduct, Integer serialNumber) {
Product product = productRepository.findById(serialNumber).orElseThrow(IllegalArgumentException::new);
if (productRepository.findById(serialNumber).isEmpty()) {
throw new IllegalStateException("Product nor found in stock");
} else if (productRepository.findAllByStatusEquals(ProductStatus.SOLD)) {
throw new IllegalStateException("Product is empty on stock because it sold out");
}
product.setStatus(ProductStatus.SOLD);
product.setSaleDate(LocalDate.now());
return productRepository.save(product);
}
public Product refund(ProductDTO returnedProduct, Integer serialNumber) {
Product product = productRepository.findById(serialNumber).orElseThrow(IllegalArgumentException::new);
if (LocalDate.now().minusDays(14L).isAfter(product.getSaleDate())) {
throw new IllegalStateException("Can't be returned due to refund period is ended");
}
product.setStatus(ProductStatus.RETURNED);
return productRepository.save(product);
}
'''
'''
@RestController
@RequestMapping(value = "comfy")
public class ProductRestController {
@PutMapping("comfy/{serialNumber}")
public Product saleProduct(@RequestBody Product product, @PathVariable Integer serialNumber) {
return comfyService.sale(product, serialNumber);
}
@PutMapping("comfy/{serialNumber}/return")
public Product returnProduct(@RequestBody ProductDTO product, @PathVariable Integer serialNumber) {
return comfyService.refund(product, serialNumber);
}
'''