feat(gift): 선물 관리자 API를 추가한다
This commit is contained in:
+74
@@ -0,0 +1,74 @@
|
||||
package kr.co.vividnext.sodalive.v2.api.admin.gift.adapter.`in`.web
|
||||
|
||||
import kr.co.vividnext.sodalive.common.ApiResponse
|
||||
import kr.co.vividnext.sodalive.v2.api.admin.gift.dto.AdminGiftCategoryRequest
|
||||
import kr.co.vividnext.sodalive.v2.api.admin.gift.dto.AdminGiftCategoryResponse
|
||||
import kr.co.vividnext.sodalive.v2.api.admin.gift.dto.AdminGiftMarkUndeliverableRequest
|
||||
import kr.co.vividnext.sodalive.v2.api.admin.gift.dto.AdminGiftOperationStatusResponse
|
||||
import kr.co.vividnext.sodalive.v2.api.admin.gift.dto.AdminGiftSizePriceRequest
|
||||
import kr.co.vividnext.sodalive.v2.api.admin.gift.dto.AdminGiftSizePriceResponse
|
||||
import kr.co.vividnext.sodalive.v2.gift.application.GiftAdminService
|
||||
import kr.co.vividnext.sodalive.v2.gift.domain.GiftSize
|
||||
import org.springframework.security.access.prepost.PreAuthorize
|
||||
import org.springframework.web.bind.annotation.DeleteMapping
|
||||
import org.springframework.web.bind.annotation.GetMapping
|
||||
import org.springframework.web.bind.annotation.PathVariable
|
||||
import org.springframework.web.bind.annotation.PostMapping
|
||||
import org.springframework.web.bind.annotation.PutMapping
|
||||
import org.springframework.web.bind.annotation.RequestBody
|
||||
import org.springframework.web.bind.annotation.RequestMapping
|
||||
import org.springframework.web.bind.annotation.RestController
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v2/admin")
|
||||
@PreAuthorize("hasRole('ADMIN')")
|
||||
class AdminGiftController(private val service: GiftAdminService) {
|
||||
@GetMapping("/gift-categories")
|
||||
fun getCategories() = ApiResponse.ok(service.getCategories().map { AdminGiftCategoryResponse.from(it) })
|
||||
|
||||
@PostMapping("/gift-categories")
|
||||
fun createCategory(@RequestBody request: AdminGiftCategoryRequest) = ApiResponse.ok(
|
||||
AdminGiftCategoryResponse.from(service.createCategory(request.toCommand()))
|
||||
)
|
||||
|
||||
@PutMapping("/gift-categories/{categoryId}")
|
||||
fun updateCategory(
|
||||
@PathVariable categoryId: Long,
|
||||
@RequestBody request: AdminGiftCategoryRequest
|
||||
) = ApiResponse.ok(AdminGiftCategoryResponse.from(service.updateCategory(categoryId, request.toCommand())))
|
||||
|
||||
@DeleteMapping("/gift-categories/{categoryId}")
|
||||
fun deleteCategory(@PathVariable categoryId: Long) = ApiResponse.ok(
|
||||
AdminGiftCategoryResponse.from(service.deleteCategory(categoryId))
|
||||
)
|
||||
|
||||
@GetMapping("/gift-size-prices")
|
||||
fun getSizePrices() = ApiResponse.ok(service.getSizePrices().map { AdminGiftSizePriceResponse.from(it) })
|
||||
|
||||
@PutMapping("/gift-size-prices/{sizeCode}")
|
||||
fun updateSizePrice(
|
||||
@PathVariable sizeCode: GiftSize,
|
||||
@RequestBody request: AdminGiftSizePriceRequest
|
||||
) = ApiResponse.ok(AdminGiftSizePriceResponse.from(service.updateSizePrice(sizeCode, request.toCommand())))
|
||||
|
||||
@PostMapping("/gifts/{applicationNo}/arrive-mailbox")
|
||||
fun arriveMailbox(@PathVariable applicationNo: String) = ApiResponse.ok(
|
||||
AdminGiftOperationStatusResponse.from(service.arriveMailbox(applicationNo))
|
||||
)
|
||||
|
||||
@PostMapping("/gifts/{applicationNo}/complete-inspection")
|
||||
fun completeInspection(@PathVariable applicationNo: String) = ApiResponse.ok(
|
||||
AdminGiftOperationStatusResponse.from(service.completeInspection(applicationNo))
|
||||
)
|
||||
|
||||
@PostMapping("/gifts/{applicationNo}/mark-undeliverable")
|
||||
fun markUndeliverable(
|
||||
@PathVariable applicationNo: String,
|
||||
@RequestBody request: AdminGiftMarkUndeliverableRequest
|
||||
) = ApiResponse.ok(AdminGiftOperationStatusResponse.from(service.markUndeliverable(applicationNo, request.reason)))
|
||||
|
||||
@PostMapping("/gifts/{applicationNo}/complete-delivery")
|
||||
fun completeDelivery(@PathVariable applicationNo: String) = ApiResponse.ok(
|
||||
AdminGiftOperationStatusResponse.from(service.completeDelivery(applicationNo))
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user