Merge branch 'cron-job-org' into 'master'

add cronjob.org support

See merge request mohit.panjvani/crater-web!1316
This commit is contained in:
Mohit Panjwani
2021-12-29 12:48:24 +00:00
6 changed files with 57 additions and 0 deletions

View File

@ -36,3 +36,5 @@ SANCTUM_STATEFUL_DOMAINS=crater.test
SESSION_DOMAIN=crater.test
TRUSTED_PROXIES="*"
CRON_JOB_AUTH_TOKEN=""

View File

@ -0,0 +1,23 @@
<?php
namespace Crater\Http\Controllers\V1\Webhook;
use Crater\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Artisan;
class CronJobController extends Controller
{
/**
* Handle the incoming request.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function __invoke(Request $request)
{
Artisan::call('schedule:run');
return response()->json(['success' => true]);
}
}

View File

@ -69,6 +69,7 @@ class Kernel extends HttpKernel
'redirect-if-unauthenticated' => \Crater\Http\Middleware\RedirectIfUnauthorized::class,
'customer-guest' => \Crater\Http\Middleware\CustomerGuest::class,
'company' => \Crater\Http\Middleware\CompanyMiddleware::class,
'cron-job' => \Crater\Http\Middleware\CronJobMiddleware::class,
];
/**

View File

@ -0,0 +1,25 @@
<?php
namespace Crater\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class CronJobMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
if ($request->header('x-authorization-token') && $request->header('x-authorization-token') == config('services.cron_job.auth_token')) {
return $next($request);
}
return response()->json(['unauthorized'], 401);
}
}

View File

@ -62,4 +62,7 @@ return [
'redirect' => env('GITHUB_REDIRECT_URL'),
],
'cron_job' => [
'auth_token' => env('CRON_JOB_AUTH_TOKEN', 0)
],
];

View File

@ -80,6 +80,7 @@ use Crater\Http\Controllers\V1\Installation\FinishController;
use Crater\Http\Controllers\V1\Installation\LoginController;
use Crater\Http\Controllers\V1\Installation\OnboardingWizardController;
use Crater\Http\Controllers\V1\Installation\RequirementsController;
use Crater\Http\Controllers\V1\Webhook\CronJobController;
use Illuminate\Support\Facades\Route;
/*
@ -437,3 +438,5 @@ Route::prefix('/v1')->group(function () {
Route::apiResource('/users', UsersController::class);
});
});
Route::get('/cron', CronJobController::class)->middleware('cron-job');