diff --git a/app/Http/Controllers/WebCronController.php b/app/Http/Controllers/WebCronController.php new file mode 100644 index 000000000000..29dd13c05f6e --- /dev/null +++ b/app/Http/Controllers/WebCronController.php @@ -0,0 +1,75 @@ +json(['message' => 'Web cron has not been configured'], 403); + + if($request->has('secret') && (config('ninja.webcron_secret') == $request->query('secret'))) + { + Artisan::call('schedule:run'); + + return response()->json(['message' => 'Executing web cron'], 200); + } + + return response()->json(['message' => 'Invalid secret'], 403); + + } +} diff --git a/config/ninja.php b/config/ninja.php index a0634910d285..7599c029b53c 100644 --- a/config/ninja.php +++ b/config/ninja.php @@ -141,4 +141,5 @@ return [ 'snappdf_chromium_path' => env('SNAPPDF_CHROMIUM_PATH', false), 'v4_migration_version' => '4.5.31', 'flutter_canvas_kit' => env('FLUTTER_CANVAS_KIT', false), + 'webcron_secret' => env('WEBCRON_SECRET', false), ]; diff --git a/routes/api.php b/routes/api.php index 45d6d5683b4e..a503f03d9765 100644 --- a/routes/api.php +++ b/routes/api.php @@ -182,5 +182,5 @@ Route::match(['get', 'post'], 'payment_webhook/{company_key}/{company_gateway_id Route::post('api/v1/postmark_webhook', 'PostMarkController@webhook'); Route::get('token_hash_router', 'OneTimeTokenController@router'); - +Route::get('webcron', 'WebCronController@index'); Route::fallback('BaseController@notFound');