| 
									
										
										
										
											2022-03-06 02:02:12 +11:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace App\Providers; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | use Illuminate\Cache\RateLimiting\Limit; | 
					
						
							|  |  |  | use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; | 
					
						
							|  |  |  | use Illuminate\Http\Request; | 
					
						
							|  |  |  | use Illuminate\Support\Facades\RateLimiter; | 
					
						
							|  |  |  | use Illuminate\Support\Facades\Route; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class RouteServiceProvider extends ServiceProvider | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * The path to the "home" route for your application. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * This is used by Laravel authentication to redirect users after login. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var string | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2022-10-13 16:04:26 +11:00
										 |  |  |     public const HOME = '/'; | 
					
						
							| 
									
										
										
										
											2022-03-06 02:02:12 +11:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * The controller namespace for the application. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * When present, controller route declarations will automatically be prefixed with this namespace. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var string|null | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     // protected $namespace = 'App\\Http\\Controllers';
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Define your route model bindings, pattern filters, etc. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @return void | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function boot() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2022-03-13 20:09:50 +00:00
										 |  |  | 	if (config('app.env') === 'production') { | 
					
						
							|  |  |  | 			\Illuminate\Support\Facades\URL::forceScheme('https'); | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2022-03-06 02:02:12 +11:00
										 |  |  |         $this->configureRateLimiting(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $this->routes(function () { | 
					
						
							|  |  |  |             Route::prefix('api') | 
					
						
							|  |  |  |                 ->middleware('api') | 
					
						
							|  |  |  |                 ->namespace($this->namespace) | 
					
						
							|  |  |  |                 ->group(base_path('routes/api.php')); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             Route::middleware('web') | 
					
						
							|  |  |  |                 ->namespace($this->namespace) | 
					
						
							|  |  |  |                 ->group(base_path('routes/web.php')); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Configure the rate limiters for the application. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @return void | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     protected function configureRateLimiting() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         RateLimiter::for('api', function (Request $request) { | 
					
						
							|  |  |  |             return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip()); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |