token_create_test.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #!/usr/bin/env php
  2. <?php
  3. declare(strict_types=1);
  4. require __DIR__ . '/../vendor/autoload.php';
  5. use Services\TokenCreateService;
  6. if (class_exists(Dotenv\Dotenv::class) && file_exists(__DIR__ . '/../.env')) {
  7. Dotenv\Dotenv::createImmutable(dirname(__DIR__), null, true)->safeLoad();
  8. }
  9. $dsn = $_ENV['DB_DSN'] ?? (function () {
  10. $host = $_ENV['DB_HOST'] ?? 'localhost';
  11. $port = $_ENV['DB_PORT'] ?? '5432';
  12. $name = $_ENV['DB_NAME'] ?? 'postgres';
  13. return "pgsql:host={$host};port={$port};dbname={$name}";
  14. })();
  15. $dbUser = $_ENV['DB_USER'] ?? 'postgres';
  16. $dbPass = $_ENV['DB_PASSWORD'] ?? '';
  17. $GLOBALS['pdo'] = new PDO($dsn, $dbUser, $dbPass);
  18. $GLOBALS['pdo']->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  19. $payloadFile = $argv[1] ?? null;
  20. if ($payloadFile) {
  21. if (!is_file($payloadFile)) {
  22. fwrite(STDERR, "[error] Payload file '{$payloadFile}' not found" . PHP_EOL);
  23. exit(1);
  24. }
  25. $data = json_decode(file_get_contents($payloadFile), true);
  26. if (!is_array($data)) {
  27. fwrite(STDERR, "[error] Invalid JSON payload" . PHP_EOL);
  28. exit(1);
  29. }
  30. } else {
  31. $data = [
  32. 'token_commodities_amount' => 1,
  33. 'token_commodities_value' => 100,
  34. 'token_uf' => 'SP',
  35. 'token_city' => 'SAO PAULO',
  36. 'token_content' => 'testetesteteste',
  37. 'token_flag' => 'a',
  38. 'wallet_id' => 1,
  39. 'chain_id' => 1,
  40. 'commodities_id' => 1,
  41. 'cpr_id' => 1,
  42. 'user_id' => 1,
  43. ];
  44. }
  45. $required = [
  46. 'token_commodities_amount',
  47. 'token_commodities_value',
  48. 'token_uf',
  49. 'token_city',
  50. 'token_content',
  51. 'token_flag',
  52. 'wallet_id',
  53. 'chain_id',
  54. 'commodities_id',
  55. 'cpr_id',
  56. 'user_id',
  57. ];
  58. foreach ($required as $field) {
  59. if (!array_key_exists($field, $data)) {
  60. fwrite(STDERR, "[error] Missing required field: {$field}" . PHP_EOL);
  61. exit(1);
  62. }
  63. }
  64. $service = new TokenCreateService();
  65. try {
  66. $result = $service->createToken(
  67. (int)$data['token_commodities_amount'],
  68. (int)$data['token_commodities_value'],
  69. (string)$data['token_uf'],
  70. (string)$data['token_city'],
  71. (string)$data['token_content'],
  72. (string)$data['token_flag'],
  73. (int)$data['wallet_id'],
  74. (int)$data['chain_id'],
  75. (int)$data['commodities_id'],
  76. (int)$data['cpr_id'],
  77. (int)$data['user_id']
  78. );
  79. echo json_encode([
  80. 'status' => 'ok',
  81. 'data' => $result,
  82. ], JSON_PRETTY_PRINT) . PHP_EOL;
  83. } catch (Throwable $e) {
  84. fwrite(STDERR, '[error] ' . $e->getMessage() . PHP_EOL);
  85. exit(1);
  86. }