Slide 21
Slide 21 text
π @maxbbeckers
#[Route(name: "app_v2_payments_")]
class PaymentsController extends AbstractController
{
public function __construct(
private readonly PaymentServiceInterface $paymentService,
private readonly PaymentMapper $paymentMapper
) {}
#[Route('/v2/{merchantId}/payments', name: 'create_payment', methods: ['POST'])]
public function create(Request $request, string $merchantId): JsonResponse
{
/** @var CreatePaymentRequest $createPaymentRequest */
$createPaymentRequest = ObjectSerializer::deserialize($request->getContent(), CreatePaymentRequest::class);
$paymentRequest = $this->paymentMapper->mapCreatePaymentRequestToPaymentDTO($createPaymentRequest, $merchantId);
$paymentResponse = $this->paymentService->pay($paymentRequest);
$response = $this->paymentMapper->mapPaymentDTOToPaymentResponse($paymentResponse);
return $this->json(ObjectSerializer::sanitizeForSerialization($response), 201);
}
}
Payments Controller