diff --git a/config/porto.php b/config/porto.php index 91ec12c..e287689 100644 --- a/config/porto.php +++ b/config/porto.php @@ -2,5 +2,26 @@ // config for AdminKit/Porto return [ - // + + 'api' => [ + 'url' => env('API_URL'), + 'prefix' => env('API_PREFIX', '/api'), + 'enable_version_prefix' => true, + + /* + |-------------------------------------------------------------------------- + | Rate Limit (throttle) + |-------------------------------------------------------------------------- + | + | Attempts per minutes. + | `attempts` is the number of attempts per `expires` in minutes. + | + */ + 'throttle' => [ + 'enabled' => env('GLOBAL_API_RATE_LIMIT_ENABLED', true), + 'attempts' => env('GLOBAL_API_RATE_LIMIT_ATTEMPTS_PER_MIN', '30'), + 'expires' => env('GLOBAL_API_RATE_LIMIT_EXPIRES_IN_MIN', '1'), + ], + + ], ]; diff --git a/src/Loaders/RoutesLoaderTrait.php b/src/Loaders/RoutesLoaderTrait.php index 880570a..9d7f32a 100644 --- a/src/Loaders/RoutesLoaderTrait.php +++ b/src/Loaders/RoutesLoaderTrait.php @@ -88,11 +88,11 @@ private function getRateLimitMiddleware(): ?string { $rateLimitMiddleware = null; - if (Config::get('apiato.api.throttle.enabled')) { + if (Config::get('porto.api.throttle.enabled')) { RateLimiter::for('api', function (Request $request) { return Limit::perMinutes( - Config::get('apiato.api.throttle.expires'), - Config::get('apiato.api.throttle.attempts') + Config::get('porto.api.throttle.expires'), + Config::get('porto.api.throttle.attempts') )->by($request->user()?->id ?: $request->ip()); }); @@ -107,14 +107,15 @@ private function getRateLimitMiddleware(): ?string */ private function getApiUrl() { - return Config::get('apiato.api.url'); + return Config::get('porto.api.url'); } private function getApiVersionPrefix($file): string { - return Config::get('apiato.api.prefix').(Config::get( - 'apiato.api.enable_version_prefix' - ) ? $this->getRouteFileVersionFromFileName($file) : ''); + $prefix = trim(config('porto.api.prefix'), " /\t\n\r\0\x0B"); + $version = config('porto.api.enable_version_prefix') ? $this->getRouteFileVersionFromFileName($file) : ''; + + return $prefix.'/'.$version; } private function getRouteFileVersionFromFileName($file): string|bool