decrement and increment endpoints

This commit is contained in:
Hiekki 2021-07-27 13:20:31 +01:00
parent 696ce64df3
commit b12007aea3
2 changed files with 39 additions and 1 deletions

View file

@ -64,8 +64,8 @@ class UserController extends Controller
}
/**
* increments the users credits or/and server_limit
*
*
* @param Request $request
* @param int $id
* @return User
@ -88,12 +88,49 @@ class UserController extends Controller
}
if($request->server_limit){
if ($user->server_limit + $request->server_limit >= 2147483647) throw ValidationException::withMessages([
'server_limit' => "You cannot add this amount of servers because it would exceed the server limit."
]);
$user->increment('server_limit', $request->server_limit);
}
return $user;
}
/**
* decrements the users credits or/and server_limit
*
* @param Request $request
* @param int $id
* @return User
*/
public function decrement(Request $request, int $id)
{
$discordUser = DiscordUser::find($id);
$user = $discordUser ? $discordUser->user : User::findOrFail($id);
$request->validate([
"credits" => "sometimes|numeric|min:0|max:1000000",
"server_limit" => "sometimes|numeric|min:0|max:1000000",
]);
if($request->credits){
if ($user->credits - $request->credits >= 99999999) throw ValidationException::withMessages([
'credits' => "You cannot remove this amount of credits because you would exceed the minimum credit"
]);
$user->decrement('credits', $request->credits);
}
if($request->server_limit){
if ($user->server_limit - $request->server_limit >= 2147483647) throw ValidationException::withMessages([
'server_limit' => "You cannot remove this amount of servers because it would exceed the minimum server."
]);
$user->decrement('server_limit', $request->server_limit);
}
return $user;
}
/**
* Remove the specified resource from storage.
*

View file

@ -18,6 +18,7 @@ use Illuminate\Support\Facades\Route;
Route::middleware('api.token')->group(function () {
Route::patch('/users/{user}/increment', [UserController::class, 'increment']);
Route::patch('/users/{user}/decrement', [UserController::class, 'decrement']);
Route::resource('users', UserController::class)->except(['store', 'create']);
Route::patch('/servers/{server}/suspend', [ServerController::class, 'suspend']);