領収証発行サービス
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

69 lines
2.0KB

  1. <?php
  2. namespace App\Http\Controllers\Web\ReceiptIssuingOrder;
  3. use App\Codes\UserRole;
  4. use App\Http\Controllers\Web\IParam;
  5. use App\Http\Controllers\Web\WebController;
  6. use App\Logic\ReceiptIssuingOrder\TokenCheckManager;
  7. use App\Models\ReceiptIssuingOrder;
  8. use Illuminate\Http\JsonResponse;
  9. use Illuminate\Http\Request;
  10. use Illuminate\Support\Arr;
  11. class TokenCheckController extends WebController
  12. {
  13. public function name(): string
  14. {
  15. return "トークンチェック";
  16. }
  17. public function description(): string
  18. {
  19. return "トークンの有効性をチェックする";
  20. }
  21. public function __construct(
  22. protected TokenCheckParam $param,
  23. private TokenCheckManager $manager
  24. ) {
  25. parent::__construct();
  26. }
  27. protected function getParam(): IParam
  28. {
  29. return $this->param;
  30. }
  31. protected function run(Request $request): JsonResponse
  32. {
  33. $param = $this->param;
  34. if (!$this->manager->check($param->accessToken)) {
  35. return $this->failedResponse();
  36. }
  37. $data['receipt_issuing_order'] = array_merge(
  38. Arr::only($this->manager->getOrder(), [
  39. ReceiptIssuingOrder::COL_NAME_ID,
  40. ReceiptIssuingOrder::COL_NAME_RECEIPT_SHOP_NAME,
  41. ReceiptIssuingOrder::COL_NAME_RECEIPT_ISSUER,
  42. ReceiptIssuingOrder::COL_NAME_RECEIPT_PURPOSE,
  43. ReceiptIssuingOrder::COL_NAME_RECEIPT_NAME,
  44. ReceiptIssuingOrder::COL_NAME_RECEIPT_USE_DATE,
  45. ReceiptIssuingOrder::COL_NAME_RECEIPT_AMOUNT,
  46. ReceiptIssuingOrder::COL_NAME_UPDATED_AT,
  47. ReceiptIssuingOrder::COL_NAME_ACCESS_TOKEN_EXPIRES_AT,
  48. ReceiptIssuingOrder::COL_NAME_STATUS_ORDER_MAIL_DATETIME,
  49. ReceiptIssuingOrder::COL_NAME_STATUS_MAIL_POST_DATE,
  50. ]),
  51. [
  52. 'confirmed' => $this->manager->isConfirmed(),
  53. ]
  54. );
  55. return $this->successResponse($data);
  56. }
  57. }