59 lines
2.5 KiB
Java
59 lines
2.5 KiB
Java
package _11.asktpk.artisanconnectbackend.controller;
|
|
|
|
import _11.asktpk.artisanconnectbackend.dto.*;
|
|
import _11.asktpk.artisanconnectbackend.entities.Order;
|
|
import _11.asktpk.artisanconnectbackend.service.OrderService;
|
|
import _11.asktpk.artisanconnectbackend.service.PaymentService;
|
|
import _11.asktpk.artisanconnectbackend.utils.Enums;
|
|
import _11.asktpk.artisanconnectbackend.utils.Tools;
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
import org.springframework.http.HttpStatus;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
@RestController
|
|
@RequestMapping("/api/v1/orders")
|
|
public class OrderController {
|
|
|
|
private final OrderService orderService;
|
|
private final PaymentService paymentService;
|
|
private final Tools tools;
|
|
|
|
public OrderController(OrderService orderService, PaymentService paymentService, Tools tools) {
|
|
this.orderService = orderService;
|
|
this.paymentService = paymentService;
|
|
this.tools = tools;
|
|
}
|
|
|
|
@PostMapping("/add")
|
|
public ResponseEntity<?> addClient(@RequestBody OrderDTO orderDTO, HttpServletRequest request) {
|
|
orderDTO.setClientId(tools.getClientIdFromRequest(request));
|
|
return ResponseEntity.status(HttpStatus.CREATED).body(orderService.addOrder(orderDTO));
|
|
}
|
|
|
|
@PutMapping("/changeStatus")
|
|
public ResponseEntity<?> changeStatus(@RequestBody OrderStatusDTO orderStatusDTO) {
|
|
return ResponseEntity.status(HttpStatus.OK).body(orderService.changeOrderStatus(orderStatusDTO.getId(), orderStatusDTO.getStatus()));
|
|
}
|
|
|
|
@PostMapping("/token")
|
|
public ResponseEntity<?> fetchToken() {
|
|
Order order = orderService.getOrderById(1L);
|
|
OAuthPaymentResponseDTO authPaymentDTO = paymentService.getOAuthToken();
|
|
TransactionPaymentRequestDTO.Payer payer = new TransactionPaymentRequestDTO.Payer(
|
|
"patryk@test.pl", "Patryk Test");
|
|
|
|
String paymentDescription = order.getOrderType() == Enums.OrderType.ACTIVATION ? "Aktywacja ogłoszenia" : "Podbicie ogłoszenia";
|
|
paymentDescription += order.getNotice().getTitle();
|
|
TransactionPaymentRequestDTO request = new TransactionPaymentRequestDTO(
|
|
order.getAmount(), paymentDescription, payer);
|
|
|
|
String response = paymentService.createTransaction(order, authPaymentDTO.getAccess_token(), request);
|
|
System.out.println(response);
|
|
System.out.println(request);
|
|
|
|
return ResponseEntity.status(HttpStatus.OK).body(response);
|
|
}
|
|
}
|