CheckoutController.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. declare(strict_types=1);
  3. namespace app\miniapi\controller;
  4. use support\Request;
  5. use support\Response;
  6. use support\annotation\route\DisableDefaultRoute;
  7. use app\miniapi\http\Input;
  8. use app\miniapi\service\CheckoutService;
  9. #[DisableDefaultRoute]
  10. final class CheckoutController extends BaseController
  11. {
  12. public function quote(Request $request, string $enterprise): Response
  13. {
  14. return $this->success($request, (new CheckoutService($this->access($request)))->quote($this->id($enterprise), Input::json($request)));
  15. }
  16. public function checkout(Request $request, string $enterprise): Response
  17. {
  18. return $this->success($request, (new CheckoutService($this->access($request)))->create($this->id($enterprise), Input::json($request)));
  19. }
  20. public function checkoutDetail(Request $request, string $enterprise, string $id): Response
  21. {
  22. return $this->success($request, (new CheckoutService($this->access($request)))->detail($this->id($enterprise), $this->id($id)));
  23. }
  24. public function cancelCheckout(Request $request, string $enterprise, string $id): Response
  25. {
  26. return $this->success($request, (new CheckoutService($this->access($request)))->cancel($this->id($enterprise), $this->id($id), Input::json($request)));
  27. }
  28. public function pay(Request $request, string $enterprise, string $id): Response
  29. {
  30. return $this->success($request, (new CheckoutService($this->access($request)))->pay(
  31. $this->id($enterprise),
  32. $this->id($id),
  33. Input::json($request),
  34. ));
  35. }
  36. }