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