Skip to content

Commit fd73512

Browse files
committed
feat: 관리자용 대여물품 검색 api 추가
1 parent 3bd23ba commit fd73512

3 files changed

Lines changed: 31 additions & 0 deletions

File tree

src/main/kotlin/site/billilge/api/backend/domain/item/controller/AdminItemApi.kt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import org.springframework.web.multipart.MultipartFile
1717
import site.billilge.api.backend.domain.item.dto.request.ItemRequest
1818
import site.billilge.api.backend.domain.item.dto.response.AdminItemFindAllResponse
1919
import site.billilge.api.backend.domain.item.dto.response.ItemDetail
20+
import site.billilge.api.backend.domain.item.dto.response.ItemFindAllResponse
2021
import site.billilge.api.backend.global.dto.PageableCondition
2122
import site.billilge.api.backend.global.dto.SearchCondition
2223
import site.billilge.api.backend.global.exception.ErrorResponse
@@ -130,4 +131,20 @@ interface AdminItemApi {
130131
fun getItemById(
131132
@PathVariable itemId: Long,
132133
): ResponseEntity<ItemDetail>
134+
135+
@Operation(
136+
summary = "물품 이름 검색",
137+
description = "물품 이름으로 물품을 검색하는 관리자용 API"
138+
)
139+
@ApiResponses(
140+
value = [
141+
ApiResponse(
142+
responseCode = "200",
143+
description = "물품 검색 성공"
144+
)
145+
]
146+
)
147+
fun searchItems(
148+
@ModelAttribute searchCondition: SearchCondition
149+
): ResponseEntity<ItemFindAllResponse>
133150
}

src/main/kotlin/site/billilge/api/backend/domain/item/controller/AdminItemController.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import org.springframework.web.multipart.MultipartFile
88
import site.billilge.api.backend.domain.item.dto.request.ItemRequest
99
import site.billilge.api.backend.domain.item.dto.response.AdminItemFindAllResponse
1010
import site.billilge.api.backend.domain.item.dto.response.ItemDetail
11+
import site.billilge.api.backend.domain.item.dto.response.ItemFindAllResponse
1112
import site.billilge.api.backend.domain.item.facade.AdminItemFacade
1213
import site.billilge.api.backend.domain.member.enums.Role
1314
import site.billilge.api.backend.global.annotation.OnlyAdmin
@@ -67,4 +68,11 @@ class AdminItemController(
6768
adminItemFacade.deleteItem(itemId)
6869
return ResponseEntity.noContent().build()
6970
}
71+
72+
@GetMapping("/search")
73+
override fun searchItems(
74+
@ModelAttribute searchCondition: SearchCondition
75+
): ResponseEntity<ItemFindAllResponse> {
76+
return ResponseEntity.ok(adminItemFacade.searchItems(searchCondition))
77+
}
7078
}

src/main/kotlin/site/billilge/api/backend/domain/item/facade/AdminItemFacade.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import site.billilge.api.backend.domain.item.dto.request.ItemRequest
66
import site.billilge.api.backend.domain.item.dto.response.AdminItemDetail
77
import site.billilge.api.backend.domain.item.dto.response.AdminItemFindAllResponse
88
import site.billilge.api.backend.domain.item.dto.response.ItemDetail
9+
import site.billilge.api.backend.domain.item.dto.response.ItemFindAllResponse
910
import site.billilge.api.backend.domain.item.service.ItemService
1011
import site.billilge.api.backend.global.dto.PageableCondition
1112
import site.billilge.api.backend.global.dto.SearchCondition
@@ -42,6 +43,11 @@ class AdminItemFacade(
4243
return ItemDetail.from(item)
4344
}
4445

46+
fun searchItems(searchCondition: SearchCondition): ItemFindAllResponse {
47+
val items = itemService.searchItems(searchCondition)
48+
return ItemFindAllResponse(items.map { ItemDetail.from(it) })
49+
}
50+
4551
fun deleteItem(itemId: Long): Boolean {
4652
return itemService.deleteItem(itemId)
4753
}

0 commit comments

Comments
 (0)