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 1e36b297..2e3633a1 100644 --- a/src/main/java/com/example/pladialmserver/equipment/controller/EquipmentController.java +++ b/src/main/java/com/example/pladialmserver/equipment/controller/EquipmentController.java @@ -3,10 +3,9 @@ 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.SearchEquipmentRes; import com.example.pladialmserver.equipment.service.EquipmentService; -import com.example.pladialmserver.global.exception.BaseException; -import com.example.pladialmserver.global.exception.BaseResponseCode; import com.example.pladialmserver.global.resolver.Account; import com.example.pladialmserver.global.response.ResponseCustom; import com.example.pladialmserver.user.entity.User; @@ -20,10 +19,10 @@ import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; -import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.List; @Api(tags = "비품 API") @RestController @@ -107,4 +106,14 @@ public ResponseCustom deleteEquipment( equipmentService.deleteEquipment(equipmentId, user); return ResponseCustom.OK(); } + + @Operation(summary = "비품 카테고리 조회 (김민기)", description = "비품을 카테고리를 조회한다.") + @ApiResponse(responseCode = "200", description = "(S0001)요청에 성공했습니다.") + @GetMapping("/categories") + public ResponseCustom> getEquipmentCategories( + @Account User user + ) + { + return ResponseCustom.OK(equipmentService.getEquipmentCategories(user)); + } } diff --git a/src/main/java/com/example/pladialmserver/equipment/dto/response/EquipmentCategoryRes.java b/src/main/java/com/example/pladialmserver/equipment/dto/response/EquipmentCategoryRes.java new file mode 100644 index 00000000..501f4170 --- /dev/null +++ b/src/main/java/com/example/pladialmserver/equipment/dto/response/EquipmentCategoryRes.java @@ -0,0 +1,23 @@ +package com.example.pladialmserver.equipment.dto.response; + +import com.example.pladialmserver.equipment.entity.EquipmentCategory; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Builder; +import lombok.Data; + +@Data +public class EquipmentCategoryRes { + @Schema(type = "String", description = "비품 카테고리 이름", example = "기타") + private String name; + + @Builder + public EquipmentCategoryRes(String name) { + this.name = name; + } + + public static EquipmentCategoryRes toDto(EquipmentCategory category) { + return EquipmentCategoryRes.builder() + .name(category.getName()) + .build(); + } +} diff --git a/src/main/java/com/example/pladialmserver/equipment/repository/EquipmentCategoryRepository.java b/src/main/java/com/example/pladialmserver/equipment/repository/EquipmentCategoryRepository.java index 5dd86b29..2f8bd362 100644 --- a/src/main/java/com/example/pladialmserver/equipment/repository/EquipmentCategoryRepository.java +++ b/src/main/java/com/example/pladialmserver/equipment/repository/EquipmentCategoryRepository.java @@ -4,9 +4,11 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.List; import java.util.Optional; @Repository public interface EquipmentCategoryRepository extends JpaRepository { EquipmentCategory findByName(String category); + List findByIsEnable(Boolean isEnable); } 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 0dfb2045..06838f4a 100644 --- a/src/main/java/com/example/pladialmserver/equipment/service/EquipmentService.java +++ b/src/main/java/com/example/pladialmserver/equipment/service/EquipmentService.java @@ -2,6 +2,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.SearchEquipmentRes; import com.example.pladialmserver.equipment.entity.Equipment; import com.example.pladialmserver.equipment.entity.EquipmentCategory; @@ -19,6 +20,9 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; +import java.util.List; +import java.util.stream.Collectors; + @Service @Transactional(readOnly = true) @RequiredArgsConstructor @@ -68,4 +72,9 @@ public void deleteEquipment(Long equipmentId, User user) { equipmentRepository.delete(equipment); } + + public List getEquipmentCategories(User user) { + List categories = equipmentCategoryRepository.findByIsEnable(true); + return categories.stream().map(EquipmentCategoryRes::toDto).collect(Collectors.toList()); + } }