Skip to content

Commit fa28bc6

Browse files
committed
Split AuthController
1 parent 641ff80 commit fa28bc6

File tree

5 files changed

+88
-64
lines changed

5 files changed

+88
-64
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?php
2+
3+
namespace CommunityWithLegends\Http\Controllers\Auth;
4+
5+
use CommunityWithLegends\Http\Controllers\Controller;
6+
use CommunityWithLegends\Http\Requests\LoginRequest;
7+
use Illuminate\Http\JsonResponse;
8+
use Illuminate\Support\Facades\Auth;
9+
use Symfony\Component\HttpFoundation\Response as Status;
10+
11+
class LoginController extends Controller
12+
{
13+
public function login(LoginRequest $loginRequest): JsonResponse
14+
{
15+
if (!Auth::attempt($loginRequest->validated())) {
16+
return response()->json([
17+
"message" => "The provided credentials do not match our records.",
18+
], Status::HTTP_FORBIDDEN);
19+
}
20+
21+
$user = Auth::user();
22+
$user->tokens()->delete();
23+
$token = $user->createToken('api-token')->plainTextToken;
24+
25+
return response()->json([
26+
"message" => "success",
27+
"token" => $token
28+
], Status::HTTP_OK);
29+
}
30+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
namespace CommunityWithLegends\Http\Controllers\Auth;
4+
5+
use CommunityWithLegends\Http\Controllers\Controller;
6+
use Illuminate\Http\JsonResponse;
7+
use Illuminate\Http\Request;
8+
use Symfony\Component\HttpFoundation\Response as Status;
9+
10+
class LogoutController extends Controller
11+
{
12+
public function logout(Request $request): JsonResponse
13+
{
14+
$request->user()->currentAccessToken()->delete();
15+
16+
return response()->json([
17+
"message" => "Logged out"
18+
], Status::HTTP_OK);
19+
}
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
namespace CommunityWithLegends\Http\Controllers\Auth;
4+
5+
use CommunityWithLegends\Http\Controllers\Controller;
6+
use CommunityWithLegends\Http\Requests\RegisterRequest;
7+
use CommunityWithLegends\Models\User;
8+
use Illuminate\Support\Facades\Hash;
9+
use Symfony\Component\HttpFoundation\Response as Status;
10+
11+
class RegisterController extends Controller
12+
{
13+
public function register(RegisterRequest $registerRequest)
14+
{
15+
$validated = $registerRequest->validated();
16+
$userExist = User::query()->where("email", $validated["email"])->exists();
17+
18+
if ($userExist) {
19+
return response()->json([
20+
"message" => "User already exists.",
21+
])->setStatusCode(Status::HTTP_CONFLICT);
22+
}
23+
24+
$user = new User($validated);
25+
$user->password = Hash::make($validated["password"]);
26+
$user->save();
27+
28+
return response()->json([
29+
"message" => "success",
30+
])->setStatusCode(Status::HTTP_OK);
31+
}
32+
}

app/Http/Controllers/AuthController.php

-60
This file was deleted.

routes/api.php

+6-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
declare(strict_types=1);
44

5-
use CommunityWithLegends\Http\Controllers\AuthController;
5+
use CommunityWithLegends\Http\Controllers\Auth\LoginController;
6+
use CommunityWithLegends\Http\Controllers\Auth\LogoutController;
7+
use CommunityWithLegends\Http\Controllers\Auth\RegisterController;
68
use CommunityWithLegends\Models\User;
79
use Illuminate\Http\Request;
810
use Illuminate\Support\Facades\Hash;
@@ -30,8 +32,8 @@
3032
Route::middleware("auth:sanctum")->group(function (): void {
3133
Route::get("/user", fn(Request $request) => $request->user());
3234

33-
Route::post("/auth/logout", [AuthController::class, "logout"]);
35+
Route::post("/auth/logout", [LogoutController::class, "logout"]);
3436
});
3537

36-
Route::post("/auth/login", [AuthController::class, "login"])->name("login");
37-
Route::post("/auth/register", [AuthController::class, "register"]);
38+
Route::post("/auth/login", [LoginController::class, "login"])->name("login");
39+
Route::post("/auth/register", [RegisterController::class, "register"]);

0 commit comments

Comments
 (0)