카드 매입 승인 경로 Spring Boot 3 전환 (ACX-E2E-1785394564819)
Some checks failed
Verify / source-contract (push) Has been cancelled

This commit is contained in:
forge-bot 2026-07-30 09:39:25 +00:00
parent fc2e4d049c
commit acc4062cbf

View file

@ -0,0 +1,59 @@
package com.acquirex.controller;
import com.acquirex.service.AcquisitionRequest;
import com.acquirex.service.AcquisitionResponse;
import com.acquirex.service.AcquisitionService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
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.validation)
*/
@RestController
@RequestMapping("/api/v1/acquisitions")
@RequiredArgsConstructor
@Slf4j
public class AcquisitionController {
private final AcquisitionService acquisitionService;
@PostMapping
public ResponseEntity<AcquisitionResponse> registerAcquisition(@Valid @RequestBody AcquisitionRequest request) {
log.info("매입 요청 수신: {}", request);
return ResponseEntity.status(HttpStatus.CREATED).body(acquisitionService.registerAcquisition(request));
}
@PostMapping("/{transactionId}/approve")
public ResponseEntity<AcquisitionResponse> approveAcquisition(@PathVariable String transactionId) {
log.info("매입 승인 요청: transactionId={}", transactionId);
return ResponseEntity.ok(acquisitionService.approveAcquisition(transactionId));
}
@PostMapping("/{transactionId}/reject")
public ResponseEntity<AcquisitionResponse> rejectAcquisition(@PathVariable String transactionId, @RequestBody Map<String, String> body) {
log.info("매입 거절 요청: transactionId={}", transactionId);
return ResponseEntity.ok(acquisitionService.rejectAcquisition(transactionId, body.getOrDefault("reason", "사유 미지정")));
}
@GetMapping("/{transactionId}")
public ResponseEntity<AcquisitionResponse> getAcquisition(@PathVariable String transactionId) {
log.info("매입 조회 요청: transactionId={}", transactionId);
return ResponseEntity.ok(acquisitionService.getAcquisition(transactionId));
}
@GetMapping
public ResponseEntity<List<AcquisitionResponse>> getAcquisitions(@RequestParam(required = false) String merchantId) {
log.info("매입 목록 조회: merchantId={}", merchantId);
List<AcquisitionResponse> responses = (merchantId != null && !merchantId.isBlank())
? acquisitionService.getAcquisitionsByMerchant(merchantId)
: acquisitionService.getPendingAcquisitions();
return ResponseEntity.ok(responses);
}
}