@PostMapping("/register/product")
public ResponseEntity<Void> createProduct(@RequestBody RequestProduct requestProduct, HttpServletRequest request){
User user = (User) request.getAttribute("user");
boolean check = productService.CreateProduct(requestProduct, user);
return (check) ?
ResponseEntity.status(HttpStatus.OK).body(null) :
ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);
}
μν λ±λ‘μ CRUDμ Cμ ν΄λΉνκΈ°λλ¬Έμ νμκ°μ κ³Ό λΉμ·ν λ‘μ§
λ¨μ§ μν λ±λ‘μ νλ§€μ κΆνμ κ°μ§ μ¬λλ§ κ°λ₯νκΈ°λλ¬Έμ URIκ° /registerλ‘ μμ
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class RequestProduct {
@NotEmpty(message = "μνλͺ
μ
λ ₯μ νμ μ
λλ€.")
private String name;
@NotEmpty(message = "κ°κ²© μ
λ ₯μ νμ μ
λλ€.")
private int price;
@NotEmpty(message = "μΉ΄ν
κ³ λ¦¬ μ
λ ₯μ νμ μ
λλ€.")
private String category;
@NotEmpty(message = "μμΈμ€λͺ
μ
λ ₯μ νμ μ
λλ€.")
private String description;
@NotEmpty(message = "μ¬μ΄μ¦ μ
λ ₯μ νμ μ
λλ€.")
private String size;
@NotEmpty(message = "μ΄λ―Έμ§ ν€ μ
λ ₯μ νμ μ
λλ€.")
private String imgKey;
@NotEmpty
private String date;
public Product toEntity(User user) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
return Product.builder()
.id(null)
.name(name)
.price(price)
.category(category)
.description(description)
.size(size)
.imgKey(imgKey)
.date(LocalDateTime.parse(date, formatter))
.hits(0)
.favorite(0)
.user(user)
.build();
}
}
Dtoλ₯Ό Entityλ‘ λ³νν λ toEntityλΌλ ν¨μλ₯Ό λ§λ€μ΄ μ¬μ©
λ μ§λ₯Ό μ€μ νλ λΆλΆμ νλ‘ νΈμλμμλ Date νμμ΄ λ°λ‘ μκ³ year, month, day λ± κ° μμλ₯Ό λ½μ String ννλ‘ λ§λ€μ΄ 보λ΄κΈ° λλ¬Έμ LocalDateTime νμμΌλ‘ λ§λ€μ΄ μ μ₯νκΈ° μν΄DateTimeFormatter μ¬μ©
νμ¬ νλ‘μ νΈμμ λ°λ¦¬μ΄ λ¨μκΉμ§ μ μ₯ν νμμ±μ μλ€κ³ νλ¨νκ³ μ΄ λ¨μκΉμ§λ§ μ μ₯
@Override
public boolean CreateProduct(RequestProduct requestProduct, User user){
Product product = requestProduct.toEntity(user);
Product createdProduct = productRepository.save(product);
return !createdProduct.getName().isEmpty();
}
Entityλ‘ λ³ν ν μμνμμΌ DBμ μ μ₯
μ¬κΈ°μλ κ°λ¨νκ² Spring Data Jpaμ saveν¨μ μ¬μ©