在庫取得の完全実装

feature-backend-tobuy-buy
Masaharu.Kato 5 months ago
parent 765fec0ebc
commit 285ef1e81e
  1. 11
      backend/src/main/java/com/example/todoapp/controller/StocksController.java
  2. 54
      backend/src/main/java/com/example/todoapp/dto/ResponseStockDTO.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<List<StockDTO>> getAllStocks(Authentication authentication) {
@GetMapping("/get")
public ResponseEntity<List<ResponseStockDTO>> getAllStocks(Authentication authentication) {
List<Stocks> stocks = stockService.getALLStocksByUser(authentication.getName());
// エンティティからDTOへの変換
List<StockDTO> stockDTOs = stocks.stream()
.map(StockDTO::fromEntity)
List<ResponseStockDTO> 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<StockDTO> createStock(
Authentication authentication,
@Valid @RequestBody Stocks stock) {

@ -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
* <p>
* このクラスはクライアントとサーバー間で在庫情報をやり取りするために使用されます
* エンティティとは異なり必要な情報のみを含み関連エンティティへの参照ではなくIDのみを保持します
* </p>
*/
@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;
}
}
Loading…
Cancel
Save