카드 매입 승인 경로 Spring Boot 3 전환 (ACX-E2E-1785394564819)
Some checks are pending
Verify / source-contract (push) Waiting to run
Some checks are pending
Verify / source-contract (push) Waiting to run
This commit is contained in:
parent
3890fe28fc
commit
b043653504
1 changed files with 61 additions and 0 deletions
|
|
@ -0,0 +1,61 @@
|
||||||
|
package com.acquirex.approval.controller;
|
||||||
|
|
||||||
|
import com.acquirex.approval.domain.AcquisitionApproval.ApprovalStatus;
|
||||||
|
import com.acquirex.approval.service.AcquisitionApprovalService;
|
||||||
|
import com.acquirex.approval.service.AcquisitionApprovalService.ApprovalRequest;
|
||||||
|
import com.acquirex.approval.service.AcquisitionApprovalService.ApprovalResponse;
|
||||||
|
import jakarta.validation.Valid;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/** 카드 매입 승인 REST 컨트롤러 - Spring Boot 3: jakarta.* 네임스페이스 적용 */
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api/v1/acquisitions")
|
||||||
|
public class AcquisitionApprovalController {
|
||||||
|
|
||||||
|
private final AcquisitionApprovalService service;
|
||||||
|
|
||||||
|
public AcquisitionApprovalController(AcquisitionApprovalService service) {
|
||||||
|
this.service = service;
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/approvals")
|
||||||
|
public ResponseEntity<ApprovalResponse> createApproval(@Valid @RequestBody ApprovalRequest request) {
|
||||||
|
return ResponseEntity.status(HttpStatus.CREATED).body(service.processApproval(request));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/approvals/{approvalNumber}")
|
||||||
|
public ResponseEntity<ApprovalResponse> getApproval(@PathVariable String approvalNumber) {
|
||||||
|
return ResponseEntity.ok(service.findByApprovalNumber(approvalNumber));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/merchants/{merchantId}/approvals")
|
||||||
|
public ResponseEntity<List<ApprovalResponse>> getApprovalsByMerchant(
|
||||||
|
@PathVariable String merchantId, @RequestParam(required = false) ApprovalStatus status) {
|
||||||
|
return ResponseEntity.ok(service.findByMerchantId(merchantId, status));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/approvals/{id}/cancel")
|
||||||
|
public ResponseEntity<ApprovalResponse> cancelApproval(@PathVariable Long id) {
|
||||||
|
return ResponseEntity.ok(service.cancelApproval(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ExceptionHandler(jakarta.validation.ConstraintViolationException.class)
|
||||||
|
public ResponseEntity<Map<String, String>> handleConstraintViolation(jakarta.validation.ConstraintViolationException ex) {
|
||||||
|
return ResponseEntity.badRequest().body(Map.of("error", ex.getMessage()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ExceptionHandler(IllegalArgumentException.class)
|
||||||
|
public ResponseEntity<Map<String, String>> handleIllegalArgument(IllegalArgumentException ex) {
|
||||||
|
return ResponseEntity.badRequest().body(Map.of("error", ex.getMessage()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ExceptionHandler(IllegalStateException.class)
|
||||||
|
public ResponseEntity<Map<String, String>> handleIllegalState(IllegalStateException ex) {
|
||||||
|
return ResponseEntity.status(HttpStatus.CONFLICT).body(Map.of("error", ex.getMessage()));
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue