public static function queueBuild($id) { // If already queued, dont queue again if (self::find($id)->queued) { return; } \Eloquent::unguard(); // Update queued flag self::find($id)->update(['queued' => 1]); $repo = \Apigenci\Model\Repo::find($id); \Queue::pushOn('low', new BuildDocuments($repo)); }
} \Apigenci\Model\Repo::queueBuild($id); \Apigenci\Model\Github::webhookRegister($id); }); Route::post('repo/{id}/disable', function ($id) { $id = \Apigenci\Model::repoDecodeWeb($id); $repo = \Apigenci\Model\Repo::find($id); \Eloquent::unguard(); $repo->update(['enabled' => 0, 'queued' => 0, 'failed' => 0, 'built' => 0]); \Queue::pushOn('low', new \App\Jobs\Apigenci\DeleteGeneratedHtml($repo)); }); Route::get('github/{owner}/{repo}', function ($owner, $repo) { return view('apigenci.github.invite', ['owner' => $owner, 'repo' => $repo]); }); Route::get('github/{owner}/{repo}/tag/{tag}', function ($owner, $repo, $tag) { // Make sure repo exists, redirect to invite if not if (!\Apigenci\Model::localRepoExists($owner, $repo)) { return \Redirect::away("/github/{$owner}/{$repo}"); } return view('apigenci.github.tag', ['owner' => $owner, 'repo' => $repo, 'tag' => $tag]); }); Route::get('privacy', function () { return view('apigenci.privacy'); }); Route::any('webhook', function () { $raw = file_get_contents('php://input'); $id = json_decode($raw)->repository->id; // Write a log entry \Log::info("[apigen.ci] Got a webhook for repo: {$id}"); \Apigenci\Model\Repo::queueBuild($id); });