diff --git a/src/main/java/com/example/pladialmserver/equipment/controller/EquipmentController.java b/src/main/java/com/example/pladialmserver/equipment/controller/EquipmentController.java index 59db0866..0d305b26 100644 --- a/src/main/java/com/example/pladialmserver/equipment/controller/EquipmentController.java +++ b/src/main/java/com/example/pladialmserver/equipment/controller/EquipmentController.java @@ -4,6 +4,7 @@ import com.example.pladialmserver.equipment.dto.request.RegisterEquipmentReq; import com.example.pladialmserver.equipment.dto.request.UpdateEquipmentReq; import com.example.pladialmserver.equipment.dto.response.EquipmentCategoryRes; +import com.example.pladialmserver.equipment.dto.response.GetEquipmentRes; import com.example.pladialmserver.equipment.dto.response.SearchEquipmentRes; import com.example.pladialmserver.equipment.service.EquipmentService; import com.example.pladialmserver.global.resolver.Account; @@ -116,4 +117,17 @@ public ResponseCustom getEquipmentCategories( { return ResponseCustom.OK(equipmentService.getEquipmentCategories(user)); } + + @Operation(summary = "비품 조회 (김민기)", description = "비품을 조회한다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "(S0001)요청에 성공했습니다."), + @ApiResponse(responseCode = "404", description = "(E0002)존재하지 않는 비품입니다.", content = @Content(schema = @Schema(implementation = ResponseCustom.class))), + }) + @GetMapping("{equipmentId}") + public ResponseCustom getEquipment( + @PathVariable Long equipmentId + ) + { + return ResponseCustom.OK(equipmentService.getEquipment(equipmentId)); + } } diff --git a/src/main/java/com/example/pladialmserver/equipment/dto/response/GetEquipmentRes.java b/src/main/java/com/example/pladialmserver/equipment/dto/response/GetEquipmentRes.java new file mode 100644 index 00000000..2af04c6f --- /dev/null +++ b/src/main/java/com/example/pladialmserver/equipment/dto/response/GetEquipmentRes.java @@ -0,0 +1,35 @@ +package com.example.pladialmserver.equipment.dto.response; + +import com.example.pladialmserver.equipment.entity.Equipment; +import com.example.pladialmserver.global.utils.AwsS3ImageUrlUtil; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class GetEquipmentRes { + @Schema(type = "String", description = "이름", example = "비품1") + private String name; + @Schema(type = "String", description = "수량", example = "10개") + private String quantity; + @Schema(type = "String", description = "위치", example = "S1350") + private String location; + @Schema(type = "String", description = "카테고리", example = "기타") + private String category; + @Schema(type = "String", description = "비품 설명", example = "비품1 입니다.") + private String description; + @Schema(type = "String", description = "비품 이미지 Url", example = "photo/maxim.png") + private String imgUrl; + + public static GetEquipmentRes toDto(Equipment equipment) { + return GetEquipmentRes.builder() + .name(equipment.getName()) + .quantity(equipment.getQuantity()) + .location(equipment.getLocation()) + .category(equipment.getEquipmentCategory().getName()) + .description(equipment.getDescription()) + .imgUrl(AwsS3ImageUrlUtil.toUrl(equipment.getImgKey())) + .build(); + } +} diff --git a/src/main/java/com/example/pladialmserver/equipment/service/EquipmentService.java b/src/main/java/com/example/pladialmserver/equipment/service/EquipmentService.java index 09c5dd62..e1815ee8 100644 --- a/src/main/java/com/example/pladialmserver/equipment/service/EquipmentService.java +++ b/src/main/java/com/example/pladialmserver/equipment/service/EquipmentService.java @@ -3,6 +3,7 @@ import com.example.pladialmserver.equipment.dto.request.RegisterEquipmentReq; import com.example.pladialmserver.equipment.dto.request.UpdateEquipmentReq; import com.example.pladialmserver.equipment.dto.response.EquipmentCategoryRes; +import com.example.pladialmserver.equipment.dto.response.GetEquipmentRes; import com.example.pladialmserver.equipment.dto.response.SearchEquipmentRes; import com.example.pladialmserver.equipment.entity.Equipment; import com.example.pladialmserver.equipment.entity.EquipmentCategory; @@ -77,4 +78,9 @@ public EquipmentCategoryRes getEquipmentCategories(User user) { List categories = equipmentCategoryRepository.findByIsEnable(true); return EquipmentCategoryRes.toDto(categories); } + + public GetEquipmentRes getEquipment(Long equipmentId) { + Equipment equipment = equipmentRepository.findByEquipmentIdAndIsEnable(equipmentId, true).orElseThrow(() -> new BaseException(BaseResponseCode.EQUIPMENT_NOT_FOUND)); + return GetEquipmentRes.toDto(equipment); + } }