feat/user-reg-api #18
@ -5,6 +5,7 @@ namespace App\Http\Controllers\Api;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\User;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Requests\StoreUserRequest;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
@ -28,4 +29,24 @@ class UserController extends Controller
|
||||
return response()
|
||||
->json(['message' => 'Successfully created user ' . $user->firstname]);
|
||||
}
|
||||
|
||||
public function getUser(Request $request, $id)
|
||||
{
|
||||
if (!empty($id)){
|
||||
|
|
||||
try {
|
||||
# The user exists
|
||||
$user = User::where('uuid', $id)->firstOrfail();
|
||||
return response()
|
||||
->json(["status" => true]);
|
||||
} catch (Illuminate\Database\Eloquent\ModelNotFoundException $e) {
|
||||
|
llama marked this conversation as resolved
Outdated
llama
commented
same thing, probably can be just Throwable instead of a specific thing, same thing, probably can be just Throwable instead of a specific thing,
|
||||
// The user does not exist
|
||||
return response()
|
||||
->json(["status" => false]);
|
||||
}
|
||||
} else {
|
||||
return response()
|
||||
->json(["status" => "false", "message" => "Please specify UUID"]);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
BIN
public/images/PriceyBot.webp
Normal file
|
After Width: | Height: | Size: 94 KiB |
@ -20,4 +20,5 @@ Route::middleware(['header.auth', 'throttle:api'])->group(function () {
|
||||
Route::post('/sendQuote', [WebHookController::class, 'sendQuote']);
|
||||
Route::post('/randomQuote', [WebHookController::class, 'sendRandomQuote']);
|
||||
Route::post('/registerUser', [UserController::class, 'registerUser']);
|
||||
|
llama
commented
we can probably also put this under /user/register and /user since that'll be closer to how standard crud stuff works https://laravel.com/docs/10.x/controllers#actions-handled-by-resource-controller This way we'd have consistency once we start adding more models like quotes and stuff to the endpoints we can probably also put this under /user/register and /user since that'll be closer to how standard crud stuff works
https://laravel.com/docs/10.x/controllers#actions-handled-by-resource-controller
This way we'd have consistency once we start adding more models like quotes and stuff to the endpoints
|
||||
Route::get('/getUser/{id}', [UserController::class, 'getUser']);
|
||||
|
llama
commented
https://laravel.com/docs/10.x/routing#implicit-model-binding-scoping We can do something called model binding, this will allow us to automatically map this to a model without us needing to fetch it afterwards. and then inside the controller you'd do and if you dumb out $user it should be the model already, I think this also handles invalid uuids too with a response https://laravel.com/docs/10.x/routing#implicit-model-binding-scoping
We can do something called model binding, this will allow us to automatically map this to a model without us needing to fetch it afterwards.
```
Route::get('/getUser/{user:uuid}', [UserController::class, 'getUser']);
```
and then inside the controller you'd do
```
public function getUser(Request $request, User $user)
```
and if you dumb out $user it should be the model already, I think this also handles invalid uuids too with a response
|
||||
});
|
||||
|
||||
Normally it's a good idea to reduce if statement nesting so you'd want to do something like
This removes the need for else's everywhere and removes nesting so it's easier to read