review_agent_application.php 1.8 KB

12345678910111213141516171819202122232425262728
  1. <?php
  2. /** Optional cross-project API test bridge; only opens its disposable SQLite file. */
  3. $database = $argv[1] ?? '';
  4. $id = filter_var($argv[2] ?? '', FILTER_VALIDATE_INT);
  5. if (!str_starts_with($database, sys_get_temp_dir() . '/agent-api-test-') || !is_file($database) || !$id || $id < 1) {
  6. throw new RuntimeException('A disposable agent API test database and application ID are required');
  7. }
  8. require dirname(__DIR__) . '/bootstrap-agent.php';
  9. $app = new Illuminate\Foundation\Application(dirname(__DIR__, 2));
  10. $app->instance('config', new Illuminate\Config\Repository(['app' => ['locale' => 'zh', 'timezone' => 'Asia/Shanghai']]));
  11. Illuminate\Support\Facades\Facade::setFacadeApplication($app);
  12. $db = new Illuminate\Database\Capsule\Manager($app);
  13. $db->addConnection(['driver' => 'sqlite', 'database' => $database, 'prefix' => 'bot_']);
  14. $db->setAsGlobal(); $db->bootEloquent();
  15. $app->instance('db', $db->getDatabaseManager());
  16. $app->bind('db.schema', fn () => $db->schema());
  17. $app->instance('hash', new Illuminate\Hashing\BcryptHasher(['rounds' => 4]));
  18. $app->instance('translator', new Illuminate\Translation\Translator(new Illuminate\Translation\ArrayLoader(), 'zh'));
  19. $app->instance('validator', new Illuminate\Validation\Factory($app['translator'], $app));
  20. $app->instance('log', new Psr\Log\NullLogger());
  21. $request = Illuminate\Http\Request::create('/admin/agent/applicationAudit', 'POST');
  22. $request->user = (object) ['id' => 1, 'username' => 'test-admin'];
  23. $app->instance('request', $request);
  24. $agents = new App\Services\Agent\AgentService(new App\Services\Agent\AgentFlowCommissionAssignmentService(), new App\Services\Agent\AgentProfitCommissionAssignmentService());
  25. $result = (new App\Services\Agent\AgentApplicationService())->audit(['id' => $id, 'status' => 'approved'], $agents);
  26. echo json_encode($result, JSON_THROW_ON_ERROR);