test-yield/app/Http/Controllers/Api/V1/LoginController.php
2024-12-03 21:27:44 +01:00

34 lines
801 B
PHP

<?php
declare(strict_types=1);
namespace App\Http\Controllers\Api\V1;
use App\Http\Requests\Api\V1\LoginRequest;
use App\Models\User;
use Illuminate\Http\JsonResponse;
class LoginController
{
public function __invoke(LoginRequest $request): JsonResponse
{
/** @var User $user */
$user = User::query()->where('email', $request->validated('email'))->first();
if (is_null($user)) {
return response()->json([
'message' => 'Invalid credentials.',
'code' => 'BAD_LOGIN',
], 400);
}
$token = $user->createToken($request->validated('device_name'))->plainTextToken;
return response()->json([
'data' => [
'token' => $token,
],
], 201);
}
}