카드 매입 승인 경로 Spring Boot 3 전환 (ACX-E2E-1785394564819)
Some checks are pending
Verify / source-contract (push) Waiting to run

This commit is contained in:
forge-bot 2026-07-30 13:00:26 +00:00
parent 3890fe28fc
commit b043653504

View file

@ -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()));
}
}