diff --git a/backend/src/main/java/com/example/todoapp/controller/StocksController.java b/backend/src/main/java/com/example/todoapp/controller/StocksController.java index 8bdf482..2631bc1 100644 --- a/backend/src/main/java/com/example/todoapp/controller/StocksController.java +++ b/backend/src/main/java/com/example/todoapp/controller/StocksController.java @@ -1,5 +1,6 @@ package com.example.todoapp.controller; +import com.example.todoapp.dto.ResponseStockDTO; import com.example.todoapp.dto.StockDTO; import com.example.todoapp.model.Stocks; import com.example.todoapp.service.StocksService; @@ -32,12 +33,12 @@ public class StocksController { * @param authentication 認証情報 * @return ユーザーの在庫リスト */ - @GetMapping - public ResponseEntity> getAllStocks(Authentication authentication) { + @GetMapping("/get") + public ResponseEntity> getAllStocks(Authentication authentication) { List stocks = stockService.getALLStocksByUser(authentication.getName()); // エンティティからDTOへの変換 - List stockDTOs = stocks.stream() - .map(StockDTO::fromEntity) + List stockDTOs = stocks.stream() + .map(ResponseStockDTO::fromEntity) .collect(Collectors.toList()); return ResponseEntity.ok(stockDTOs); } @@ -64,7 +65,7 @@ public class StocksController { * @param stock 作成する在庫の情報 * @return 作成された在庫 */ - @PostMapping + @PostMapping("/add") public ResponseEntity createStock( Authentication authentication, @Valid @RequestBody Stocks stock) { diff --git a/backend/src/main/java/com/example/todoapp/dto/ResponseStockDTO.java b/backend/src/main/java/com/example/todoapp/dto/ResponseStockDTO.java new file mode 100644 index 0000000..1de5012 --- /dev/null +++ b/backend/src/main/java/com/example/todoapp/dto/ResponseStockDTO.java @@ -0,0 +1,54 @@ +package com.example.todoapp.dto; + +import com.example.todoapp.model.Stocks; +import com.example.todoapp.model.Stuffs; + +import lombok.Data; + +import java.time.LocalDate; + +/** + * 在庫のデータ転送オブジェクト(DTO) + *

+ * このクラスはクライアントとサーバー間で在庫情報をやり取りするために使用されます。 + * エンティティとは異なり、必要な情報のみを含み、関連エンティティへの参照ではなくIDのみを保持します。 + *

+ */ + +@Data +public class ResponseStockDTO { + private Long stockId; + private Long stuffId; + private Long userId; + private int amount; + private int price; + private LocalDate buyDate; + private LocalDate lastUpdate; + private LocalDate expDate; + private String stuffName; + private String category; + + /** + * 在庫エンティティからDTOを作成する + * + * @param stock 変換元の在庫エンティティ + * @return 変換されたStockDTOオブジェクト + */ + public static ResponseStockDTO fromEntity(Stocks stock) { + ResponseStockDTO dto = new ResponseStockDTO(); + Stuffs stuff = stock.getStuff(); + + dto.setStockId(stock.getStockId()); + dto.setStuffId(stock.getStuff().getStuffId()); + dto.setUserId(stock.getUser().getId()); + dto.setAmount(stock.getAmount()); + dto.setPrice(stock.getPrice()); + dto.setBuyDate(stock.getBuyDate()); + dto.setLastUpdate(stock.getLastUpdate()); + dto.setExpDate(stock.getExpDate()); + dto.setStuffName(stuff.getStuffName()); + dto.setCategory(stuff.getCategory()); + + return dto; + } +} \ No newline at end of file