Commit: 9c24ca4

Commit Details

SHA9c24ca40dbca995b0007e09659176f7c90e13392
Tree4c630341b69f778f78daa19bfebcc1bfdebe1836
Author<f69e50@finnacloud.com> 1766442705 +0300
Committer<f69e50@finnacloud.com> 1766442705 +0300
Message
add CI configuration and test script for Jenkins build
GPG Signature
-----BEGIN PGP SIGNATURE-----

iQJSBAABCAA8FiEEWJb139mJI+vZ81KkoAIVSUsXI0oFAmlJxtEeHHNvcGhpYS5l
cmFzbGFuQGZpbm5hY2xvdWQuY29tAAoJEKACFUlLFyNKwOEP/RJdPEnaGlYKr4zE
NkU5vATgzcYMHxCO6p3T6JqsfHsvv2d65vedOJ8LsSHFtT9AN/yXqZKV2722R5CG
WLsPzbVYJSXexKVZ8D7Zpf+DTu+/OAlWUE+XHMm+bJYVpDmqUo0ak/qX6vz6VYtW
bSRPMtM9g8WZKZqbBxLK7Sg1IkYFsFjEWmvn6mbD9C7k/0y4Sxp6Xee26xAx1sdI
+srAjwFgF+wJw0OAQoBA2jykTOiib93n9gdc9wbgl4AYUvdcaX3Hxv8LTl3Bu88N
2rqaL+OmjXtkFkEAiBaruvZZCt+aqp14gTgOM0wcLp1I1FP7uOFNOg0F0zSUawzY
Fuw3w6CKebkpbixGfxtJqrLl1IbPAhd92TxRVerZbDEnWpXW3a9HoGWRu5KFX/ny
ww+8M53ziWFNcHqpIyI5adRjG74C+5MdvC04J0/Sh1X8mykWcjE96Wu2/iRY9XQe
07I94ZVO0RaBSjSUnIItfhAgBXi03nzx+ZPw2tM4VHosn2zZjpzT8+KNQ0EXYhuT
AzgqcOKV94ZkM+48ZePvUFXsJxhMSkpXIQxGWWBnU9gjm3QAUsuCyqZGKXgVY9Vo
mDlLBl83Nhx+/7V8AFJO2gUmaph9YB01p3SMDfE++lLqX1BwdguFVrQib30OsRnq
e86d/6MrRABKf+FjtaulHY9+e8LS
=9ZJj
-----END PGP SIGNATURE-----

✓ Verified

File: src/main/java/com/paymentlink/controller/api/TaxApiController.java

1 package com.paymentlink.controller.api;
2
3 import com.paymentlink.service.TaxService;
4 import org.springframework.http.HttpStatus;
5 import org.springframework.http.ResponseEntity;
6 import org.springframework.web.bind.annotation.*;
7
8 import java.util.HashMap;
9 import java.util.Map;
10
11 @RestController
12 @RequestMapping("/api/tax")
13 public class TaxApiController {
14
15 private final TaxService taxService;
16
17 public TaxApiController(TaxService taxService) {
18 this.taxService = taxService;
19 }
20
21 /**
22 * GET /api/tax/calculate - Calculate tax
23 */
24 @GetMapping("/calculate")
25 public ResponseEntity<Map<String, Object>> calculateTax(
26 @RequestParam Long subtotal,
27 @RequestParam(required = false) String country,
28 @RequestParam(required = false) String state) {
29
30 try {
31 long taxAmount = taxService.calculateTax(subtotal, country, state);
32 double taxRate = taxService.getTaxRate(country, state);
33
34 Map<String, Object> response = new HashMap<>();
35 response.put("success", true);
36 response.put("taxAmount", taxAmount);
37 response.put("taxRate", taxRate);
38 return ResponseEntity.ok(response);
39
40 } catch (Exception e) {
41 Map<String, Object> error = new HashMap<>();
42 error.put("success", false);
43 error.put("error", e.getMessage());
44 return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(error);
45 }
46 }
47
48 /**
49 * GET /api/tax/rate - Get tax rate
50 */
51 @GetMapping("/rate")
52 public ResponseEntity<Map<String, Object>> getTaxRate(
53 @RequestParam(required = false) String country,
54 @RequestParam(required = false) String state) {
55
56 try {
57 double taxRate = taxService.getTaxRate(country, state);
58
59 Map<String, Object> response = new HashMap<>();
60 response.put("success", true);
61 response.put("taxRate", taxRate);
62 return ResponseEntity.ok(response);
63
64 } catch (Exception e) {
65 Map<String, Object> error = new HashMap<>();
66 error.put("success", false);
67 error.put("error", e.getMessage());
68 return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(error);
69 }
70 }
71 }
72
73