Files
ArtisanConnectBackend/src/main/java/_11/asktpk/artisanconnectbackend/controller/OrderController.java
Andrii Solianyk 00b9f99af5 Refactor
added possibility to get attributes
2025-06-08 14:36:38 +02:00

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