카드 매입 승인 경로 Spring Boot 3 전환 #7

Closed
forge-bot wants to merge 8 commits from forge/ACX-E2E-1785394564819-attempt-8-run-1514f10676f6 into main
Showing only changes of commit 36f0b1c0c8 - Show all commits

View file

@ -0,0 +1,67 @@
package com.acquirex.cardapproval.controller;
import com.acquirex.cardapproval.service.AcquisitionApprovalService;
import com.acquirex.cardapproval.service.AcquisitionApprovalService.AcquisitionApprovalRequest;
import com.acquirex.cardapproval.service.AcquisitionApprovalService.AcquisitionApprovalResponse;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
/**
* 카드 매입 승인 REST 컨트롤러
* Spring Boot 3.x Web (Jakarta Servlet)
*/
@RestController
@RequestMapping("/api/v1/acquisitions")
@RequiredArgsConstructor
@Slf4j
public class AcquisitionApprovalController {
private final AcquisitionApprovalService service;
@PostMapping
public ResponseEntity<AcquisitionApprovalResponse> processAcquisition(
@Valid @RequestBody AcquisitionApprovalRequest request) {
log.info("매입 승인 요청 수신: {}", request.getApprovalNumber());
AcquisitionApprovalResponse response = service.processAcquisition(request);
return ResponseEntity.status(HttpStatus.CREATED).body(response);
}
@GetMapping("/{id}")
public ResponseEntity<AcquisitionApprovalResponse> getAcquisition(@PathVariable Long id) {
log.info("매입 승인 조회: ID={}", id);
return ResponseEntity.ok(service.getAcquisition(id));
}
@GetMapping("/merchant/{merchantId}")
public ResponseEntity<List<AcquisitionApprovalResponse>> getAcquisitionsByMerchant(
@PathVariable String merchantId) {
log.info("가맹점별 매입 승인 목록 조회: 가맹점={}", merchantId);
return ResponseEntity.ok(service.getAcquisitionsByMerchant(merchantId));
}
@GetMapping("/period")
public ResponseEntity<List<AcquisitionApprovalResponse>> getAcquisitionsByPeriod(
@RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime startDate,
@RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime endDate) {
log.info("기간별 매입 승인 목록 조회: {} ~ {}", startDate, endDate);
return ResponseEntity.ok(service.getAcquisitionsByPeriod(startDate, endDate));
}
@PostMapping("/{id}/cancel")
public ResponseEntity<AcquisitionApprovalResponse> cancelAcquisition(
@PathVariable Long id,
@RequestBody Map<String, String> cancelRequest) {
log.info("매입 취소 요청: ID={}", id);
String reason = cancelRequest.getOrDefault("reason", "고객 요청");
return ResponseEntity.ok(service.cancelAcquisition(id, reason));
}
}