diff --git a/src/main/java/com/doubleo/passservice/domain/pass/controller/AdminPassController.java b/src/main/java/com/doubleo/passservice/domain/pass/controller/AdminPassController.java new file mode 100644 index 0000000..362a336 --- /dev/null +++ b/src/main/java/com/doubleo/passservice/domain/pass/controller/AdminPassController.java @@ -0,0 +1,38 @@ +package com.doubleo.passservice.domain.pass.controller; + +import com.doubleo.passservice.domain.pass.dto.request.UpdatePassStatusRequest; +import com.doubleo.passservice.domain.pass.dto.response.PassCreateResponse; +import com.doubleo.passservice.domain.pass.dto.response.PendingPassResponse; +import com.doubleo.passservice.domain.pass.service.PassService; +import com.doubleo.passservice.global.util.TenantValidator; +import io.swagger.v3.oas.annotations.Operation; +import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/admin-passes") +@RequiredArgsConstructor +public class AdminPassController { + + private final PassService passService; + private final TenantValidator tenantValidator; + + @Operation(summary = "All pending pass get API", description = "모든 발급 대기중인 출입증 조회 API") + @GetMapping("/pending") + public Page PendingPassListGet( + @RequestHeader("X-Admin-Id") Long adminId, Pageable pageable) { + String tenantId = tenantValidator.getTenantId(); + return passService.getPendingPassList(tenantId, pageable); + } + + @Operation(summary = "Accept Guardian application", description = "보호자 출입증 신청 승인 API") + @PostMapping("/approve") + public PassCreateResponse GuardianApplicationCreate( + @RequestHeader("X-Admin-Id") Long adminId, + @RequestBody UpdatePassStatusRequest request) { + return passService.createGuardianAndUpdatePassStatus( + request.passId(), request.issuanceStatus()); + } +} diff --git a/src/main/java/com/doubleo/passservice/domain/pass/controller/PassController.java b/src/main/java/com/doubleo/passservice/domain/pass/controller/MemberPassController.java similarity index 68% rename from src/main/java/com/doubleo/passservice/domain/pass/controller/PassController.java rename to src/main/java/com/doubleo/passservice/domain/pass/controller/MemberPassController.java index f74df5c..553af76 100644 --- a/src/main/java/com/doubleo/passservice/domain/pass/controller/PassController.java +++ b/src/main/java/com/doubleo/passservice/domain/pass/controller/MemberPassController.java @@ -2,29 +2,23 @@ import com.doubleo.passservice.domain.pass.dto.request.PassCreateRequest; import com.doubleo.passservice.domain.pass.dto.request.PassDeleteRequest; -import com.doubleo.passservice.domain.pass.dto.request.UpdatePassStatusRequest; import com.doubleo.passservice.domain.pass.dto.response.MemberPassInfoResponse; import com.doubleo.passservice.domain.pass.dto.response.PassCreateResponse; -import com.doubleo.passservice.domain.pass.dto.response.PendingPassResponse; import com.doubleo.passservice.domain.pass.service.PassService; import com.doubleo.passservice.global.exception.CommonException; import com.doubleo.passservice.global.exception.errorcode.PassErrorCode; -import com.doubleo.passservice.global.util.TenantValidator; import io.swagger.v3.oas.annotations.Operation; import java.util.List; import lombok.RequiredArgsConstructor; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/passes") @RequiredArgsConstructor -public class PassController { +public class MemberPassController { private final PassService passService; - private final TenantValidator tenantValidator; @Operation(summary = "All Member Pass get API", description = "모든 사용자의 Pass들을 조회하는 API") @GetMapping @@ -68,21 +62,4 @@ public ResponseEntity PassDelete( passService.deletePass(request.passId()); return ResponseEntity.ok().build(); } - - @Operation(summary = "All pending pass get API", description = "모든 발급 대기중인 출입증 조회 API") - @GetMapping("/pending") - public Page PendingPassListGet( - @RequestHeader("X-Admin-Id") Long adminId, Pageable pageable) { - String tenantId = tenantValidator.getTenantId(); - return passService.getPendingPassList(tenantId, pageable); - } - - @Operation(summary = "Accept Guardian application", description = "보호자 출입증 신청 승인 API") - @PostMapping("/approve") - public PassCreateResponse GuardianApplicationCreate( - @RequestHeader("X-Admin-Id") Long adminId, - @RequestBody UpdatePassStatusRequest request) { - return passService.createGuardianAndUpdatePassStatus( - request.passId(), request.issuanceStatus()); - } }