diff --git a/src/main/java/com/example/demo/application/product/CreateProductService.java b/src/main/java/com/example/demo/application/product/CreateProductService.java index 097d8fd..cf6e72b 100644 --- a/src/main/java/com/example/demo/application/product/CreateProductService.java +++ b/src/main/java/com/example/demo/application/product/CreateProductService.java @@ -15,9 +15,9 @@ public CreateProductService(ProductRepository productRepository) { this.productRepository = productRepository; } - public Product createProduct(String name, String imageUrl, Money price) { - Product product = Product.create(name, imageUrl, price); - + public Product createProduct(String name, Money price, String imageUrl) { + Product product = Product.create(name, price, imageUrl); + productRepository.save(product); return product; diff --git a/src/main/java/com/example/demo/controllers/ProductController.java b/src/main/java/com/example/demo/controllers/ProductController.java index e58d6ef..21e0d30 100644 --- a/src/main/java/com/example/demo/controllers/ProductController.java +++ b/src/main/java/com/example/demo/controllers/ProductController.java @@ -20,9 +20,9 @@ public class ProductController { private final CreateProductService createProductService; private final ImageStorage imageStorage; - public ProductController(GetProductListService getProductListService, - CreateProductService createProductService, ImageStorage imageStorage) { + CreateProductService createProductService, + ImageStorage imageStorage) { this.getProductListService = getProductListService; this.createProductService = createProductService; this.imageStorage = imageStorage; @@ -40,7 +40,7 @@ public void create(@ModelAttribute CreateProductDto dto) String name = dto.name().strip(); String imageUrl = imageStorage.save(dto.image()); Money price = new Money(dto.price()); - - createProductService.createProduct(name, imageUrl, price); + String imageUrl = imageStorage.save(dto.image()); + createProductService.createProduct(name, price, imageUrl); } } diff --git a/src/main/java/com/example/demo/dtos/CartDto.java b/src/main/java/com/example/demo/dtos/CartDto.java index 61b9354..ee3bbad 100644 --- a/src/main/java/com/example/demo/dtos/CartDto.java +++ b/src/main/java/com/example/demo/dtos/CartDto.java @@ -14,11 +14,11 @@ public List getLineItems() { } public record LineItemDto( - String id, - String productName, - long unitPrice, - int quantity, - long totalPrice + String id, + String productName, + long unitPrice, + int quantity, + long totalPrice ) { } } diff --git a/src/main/java/com/example/demo/dtos/CreateProductDto.java b/src/main/java/com/example/demo/dtos/CreateProductDto.java index 4577175..b130d8c 100644 --- a/src/main/java/com/example/demo/dtos/CreateProductDto.java +++ b/src/main/java/com/example/demo/dtos/CreateProductDto.java @@ -3,8 +3,8 @@ import org.springframework.web.multipart.MultipartFile; public record CreateProductDto( - String name, - Long price, - MultipartFile image + String name, + Long price, + MultipartFile image ) { } diff --git a/src/main/java/com/example/demo/dtos/ProductListDto.java b/src/main/java/com/example/demo/dtos/ProductListDto.java index 5365849..e3182e0 100644 --- a/src/main/java/com/example/demo/dtos/ProductListDto.java +++ b/src/main/java/com/example/demo/dtos/ProductListDto.java @@ -13,11 +13,12 @@ public List getProducts() { return products; } + // 오류 수정 커밋용 주석 public record ProductDto( - String id, - String name, - String imageUrl, - Long price + String id, + String name, + Long price, + String image ) { } } diff --git a/src/main/java/com/example/demo/infrastructure/ProductDtoFetcher.java b/src/main/java/com/example/demo/infrastructure/ProductDtoFetcher.java index 15710b8..8c9f9fa 100644 --- a/src/main/java/com/example/demo/infrastructure/ProductDtoFetcher.java +++ b/src/main/java/com/example/demo/infrastructure/ProductDtoFetcher.java @@ -17,20 +17,20 @@ public ProductDtoFetcher(JdbcTemplate jdbcTemplate) { public ProductListDto fetchProductListDto() { String sql = """ - SELECT * - FROM products - ORDER BY products.id DESC - """; + SELECT * + FROM products + ORDER BY products.id DESC + """; List productDtos = jdbcTemplate.query( - sql, - (ResultSet resultSet, int rowNum) -> - new ProductListDto.ProductDto( - resultSet.getString("id"), - resultSet.getString("name"), - resultSet.getString("image_url"), - resultSet.getLong("price") - ) + sql, + (ResultSet resultSet, int rowNum) -> + new ProductListDto.ProductDto( + resultSet.getString("id"), + resultSet.getString("name"), + resultSet.getLong("price"), + resultSet.getString("image_url") + ) ); return new ProductListDto(productDtos); diff --git a/src/main/java/com/example/demo/models/Product.java b/src/main/java/com/example/demo/models/Product.java index d94411b..6fd38a8 100644 --- a/src/main/java/com/example/demo/models/Product.java +++ b/src/main/java/com/example/demo/models/Product.java @@ -31,15 +31,16 @@ public class Product { public Product() { } - public Product(ProductId id, String name, String imageUrl, Money price) { + public Product(ProductId id, String name, Money price, String imageUrl) { this.id = id; this.name = name; this.imageUrl = imageUrl; this.price = price; + this.imageUrl = imageUrl; } - public static Product create(String name, String imageUrl, Money price) { - return new Product(ProductId.generate(), name, imageUrl, price); + public static Product create(String name, Money price, String imageUrl) { + return new Product(ProductId.generate(), name, price, imageUrl); } public ProductId id() { @@ -56,4 +57,8 @@ public String imageUrl() { public Money price() { return price; } + + public String imageUrl() { + return imageUrl; + } } diff --git a/src/main/java/com/example/demo/utils/ImageStorage.java b/src/main/java/com/example/demo/utils/ImageStorage.java index 7639971..df02e0b 100644 --- a/src/main/java/com/example/demo/utils/ImageStorage.java +++ b/src/main/java/com/example/demo/utils/ImageStorage.java @@ -10,20 +10,18 @@ @Component public class ImageStorage { - public String save(MultipartFile multipartFile) { - if (multipartFile == null || multipartFile.isEmpty()) { - return "No image"; - } + public String save(MultipartFile multipartFile){ + if(multipartFile == null || multipartFile.isEmpty()) return "No Image"; String id = TSID.Factory.getTsid().toString(); String filename = "data/" + id + ".jpg"; File file = new File(filename); - try (FileOutputStream output = new FileOutputStream(file)) { - output.write(multipartFile.getBytes()); + try (FileOutputStream outputStream = new FileOutputStream(file)){ + outputStream.write(multipartFile.getBytes()); return filename; - } catch (IOException e) { + } catch (IOException e){ throw new RuntimeException(e); } } diff --git a/src/test/java/com/example/demo/application/product/CreateProductServiceTest.java b/src/test/java/com/example/demo/application/product/CreateProductServiceTest.java index d8b0860..e7514da 100644 --- a/src/test/java/com/example/demo/application/product/CreateProductServiceTest.java +++ b/src/test/java/com/example/demo/application/product/CreateProductServiceTest.java @@ -27,13 +27,14 @@ void createProduct() { String name = "제-품"; String imageUrl = "IMAGE_URL"; Money price = new Money(100_000L); + String imageUrl = "IMAGE_URL"; - Product product = createProductService - .createProduct(name, imageUrl, price); + Product product = createProductService.createProduct(name, price, imageUrl); assertThat(product.name()).isEqualTo(name); assertThat(product.imageUrl()).isEqualTo(imageUrl); assertThat(product.price()).isEqualTo(price); + assertThat(product.imageUrl()).isEqualTo(imageUrl); verify(productRepository).save(product); } diff --git a/src/test/java/com/example/demo/controllers/ProductControllerTest.java b/src/test/java/com/example/demo/controllers/ProductControllerTest.java index 508de79..425757c 100644 --- a/src/test/java/com/example/demo/controllers/ProductControllerTest.java +++ b/src/test/java/com/example/demo/controllers/ProductControllerTest.java @@ -43,8 +43,7 @@ class ProductControllerTest { @DisplayName("GET /products") void list() throws Exception { ProductListDto.ProductDto productDto = - new ProductListDto - .ProductDto("test-id", "제품", "IMAGE_URL", 100_000L); + new ProductListDto.ProductDto("test-id", "제품", 100_000L, "IMAGE_URL"); given(getProductListService.getProductListDto()).willReturn( new ProductListDto(List.of(productDto))); @@ -58,7 +57,6 @@ void list() throws Exception { @DisplayName("POST /products") void create() throws Exception { String filename = "src/test/resources/files/test.jpg"; - MockMultipartFile file = new MockMultipartFile( "image", "test.jpg", "image/jpeg", new FileInputStream(filename)); @@ -72,6 +70,6 @@ void create() throws Exception { .andExpect(status().isCreated()); verify(createProductService) - .createProduct("신제품", "data/image.jpg", new Money(100_000L)); + .createProduct("신제품", new Money(100_000L), "data/image.jpg"); } }