diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index f60994c61..79b214502 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -48,7 +48,7 @@ class RouteServiceProvider extends ServiceProvider if ($request->path() === 'api/health') { return Limit::perMinute(1000)->by($request->user()?->id ?: $request->ip()); } - return Limit::perMinute(30)->by($request->user()?->id ?: $request->ip()); + return Limit::perMinute(200)->by($request->user()?->id ?: $request->ip()); }); RateLimiter::for('5', function (Request $request) { return Limit::perMinute(5)->by($request->user()?->id ?: $request->ip()); diff --git a/routes/api.php b/routes/api.php index 77c000576..53ae1bd09 100644 --- a/routes/api.php +++ b/routes/api.php @@ -1,6 +1,8 @@ query->get('uuid'); $force = $request->query->get('force') ?? false; - if (is_null($teamId)) { return response()->json(['error' => 'Invalid token.'], 400); } @@ -50,29 +51,56 @@ Route::group([ ); return response()->json(['message' => 'Deployment queued.'], 200); } else if ($type === 'App\Models\StandalonePostgresql') { + if (str($resource->status)->startsWith('running')) { + return response()->json(['message' => 'Database already running.'], 200); + } StartPostgresql::run($resource); $resource->update([ 'started_at' => now(), ]); return response()->json(['message' => 'Database started.'], 200); } else if ($type === 'App\Models\StandaloneRedis') { + if (str($resource->status)->startsWith('running')) { + return response()->json(['message' => 'Database already running.'], 200); + } StartRedis::run($resource); $resource->update([ 'started_at' => now(), ]); return response()->json(['message' => 'Database started.'], 200); } else if ($type === 'App\Models\StandaloneMongodb') { + if (str($resource->status)->startsWith('running')) { + return response()->json(['message' => 'Database already running.'], 200); + } StartMongodb::run($resource); $resource->update([ 'started_at' => now(), ]); return response()->json(['message' => 'Database started.'], 200); - }else if ($type === 'App\Models\Service') { + } else if ($type === 'App\Models\StandaloneMysql') { + if (str($resource->status)->startsWith('running')) { + return response()->json(['message' => 'Database already running.'], 200); + } + StartMysql::run($resource); + $resource->update([ + 'started_at' => now(), + ]); + return response()->json(['message' => 'Database started.'], 200); + } else if ($type === 'App\Models\StandaloneMariadb') { + if (str($resource->status)->startsWith('running')) { + return response()->json(['message' => 'Database already running.'], 200); + } + StartMariadb::run($resource); + $resource->update([ + 'started_at' => now(), + ]); + return response()->json(['message' => 'Database started.'], 200); + } else if ($type === 'App\Models\Service') { StartService::run($resource); return response()->json(['message' => 'Service started.'], 200); } } - return response()->json(['error' => 'No resource found.'], 404); + return response()->json(['error' => "No resource found with {$uuid}."], 404); }); });