diff --git a/.env.example b/.env.example index 8e98cb86..c8d4e223 100644 --- a/.env.example +++ b/.env.example @@ -36,3 +36,5 @@ SANCTUM_STATEFUL_DOMAINS=crater.test SESSION_DOMAIN=crater.test TRUSTED_PROXIES="*" + +CRON_JOB_AUTH_TOKEN="" diff --git a/app/Http/Controllers/V1/Webhook/CronJobOrgController.php b/app/Http/Controllers/V1/Webhook/CronJobOrgController.php new file mode 100644 index 00000000..dcc922ae --- /dev/null +++ b/app/Http/Controllers/V1/Webhook/CronJobOrgController.php @@ -0,0 +1,23 @@ +json(['success' => true]); + } +} diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 36f04843..af98bef2 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -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-org' => \Crater\Http\Middleware\CronJobOrgMiddleware::class, ]; /** diff --git a/app/Http/Middleware/CronJobOrgMiddleware.php b/app/Http/Middleware/CronJobOrgMiddleware.php new file mode 100644 index 00000000..74250c82 --- /dev/null +++ b/app/Http/Middleware/CronJobOrgMiddleware.php @@ -0,0 +1,25 @@ +header('Authorization-token')) { + return $next($request); + } + + return response()->json(['unauthorized'], 401); + } +} diff --git a/config/services.php b/config/services.php index d9b0607f..e14d6063 100644 --- a/config/services.php +++ b/config/services.php @@ -62,4 +62,7 @@ return [ 'redirect' => env('GITHUB_REDIRECT_URL'), ], + 'cron_job_org' => [ + 'auth_token' => env('CRON_JOB_AUTH_TOKEN', 0) + ], ]; diff --git a/routes/api.php b/routes/api.php index 6e62f1c2..5b75c8eb 100644 --- a/routes/api.php +++ b/routes/api.php @@ -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\CronJobOrgController; use Illuminate\Support\Facades\Route; /* @@ -437,3 +438,5 @@ Route::prefix('/v1')->group(function () { Route::apiResource('/users', UsersController::class); }); }); + +Route::get('/cron', CronJobOrgController::class)->middleware('cron-job-org');