subDay()->toDateTimeString(); return DB::selectOne('SELECT (SELECT COUNT(*) FROM user_requests WHERE users_id = ? AND timestamp > ?) as api_count, (SELECT COUNT(*) FROM user_downloads WHERE users_id = ? AND timestamp > ?) as grab_count, (SELECT MIN(timestamp) FROM user_requests WHERE users_id = ? AND timestamp > ?) as api_time, (SELECT MIN(timestamp) FROM user_downloads WHERE users_id = ? AND timestamp > ?) as grab_time', [$userId, $oneDayAgo, $userId, $oneDayAgo, $userId, $oneDayAgo, $userId, $oneDayAgo] ); }); } public function record(User $user, Request $request): void { $job = new RecordApiUsage( $user->id, $request->getRequestUri(), $request->ip(), now()->toDateTimeString(), ); if ((bool) config('nntmux.api.async_audit', true)) { try { dispatch($job); } catch (Throwable) { // Preserve audit and quota correctness when the queue backend is unavailable. $job->handle(); } return; } $job->handle(); } }