diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index c813da2..43fe6d5 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -3,12 +3,14 @@ namespace App\Http\Controllers; use App\Models\User; +use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; +use Psy\Util\Json; class UserController extends Controller { - public function create(Request $request) { + public function create(Request $request): JsonResponse { User::create([ "name" => $request["name"], "email" => $request["email"], @@ -19,4 +21,15 @@ class UserController extends Controller return response()->json(['message' => 'User created successfully']); } + + public function delete(Request $request): JsonResponse { + + try { + $user = User::find($request->user()->id); + $user->delete(); + return response()->json(['message' => 'User deleted successfully']); + } catch(\Exception $e) { + return response()->json(['message' => $e->getMessage()]); + } + } } diff --git a/routes/api.php b/routes/api.php index 59bfe1a..20a490e 100644 --- a/routes/api.php +++ b/routes/api.php @@ -9,10 +9,12 @@ Route::get("/hello", function (Request $request) { return "Hello"; }); +Route::middleware(['web', 'auth'])->get('/me', fn (Request $r) => $r->user()); + Route::post("/users/register", [UserController::class, "create"]); Route::middleware('web')->post('/users/login', [AuthController::class, 'login']); Route::middleware(['web', 'auth:sanctum'])->post('/users/logout', [AuthController::class, 'logout']); -Route::middleware(['web', 'auth'])->get('/me', fn (Request $r) => $r->user()); +Route::middleware(['web', 'auth:sanctum'])->delete('/users', [UserController::class, "delete"]); diff --git a/tests/Login.bru b/tests/Login.bru index 92f1c6d..2b55613 100644 --- a/tests/Login.bru +++ b/tests/Login.bru @@ -1,7 +1,7 @@ meta { name: Login type: http - seq: 7 + seq: 6 } post { diff --git a/tests/Logout.bru b/tests/Logout.bru index 0b6cbbd..da1be29 100644 --- a/tests/Logout.bru +++ b/tests/Logout.bru @@ -1,7 +1,7 @@ meta { name: Logout type: http - seq: 8 + seq: 7 } post { diff --git a/tests/Create user.bru b/tests/Users/Create user.bru similarity index 100% rename from tests/Create user.bru rename to tests/Users/Create user.bru diff --git a/tests/Users/Delete user.bru b/tests/Users/Delete user.bru new file mode 100644 index 0000000..0b0f065 --- /dev/null +++ b/tests/Users/Delete user.bru @@ -0,0 +1,21 @@ +meta { + name: Delete user + type: http + seq: 8 +} + +delete { + url: http://localhost:8000/api/users + body: none + auth: inherit +} + +headers { + Accept: application/json + X-XSRF-TOKEN: +} + +settings { + encodeUrl: true + timeout: 0 +} diff --git a/tests/Users/folder.bru b/tests/Users/folder.bru new file mode 100644 index 0000000..0ed84a8 --- /dev/null +++ b/tests/Users/folder.bru @@ -0,0 +1,8 @@ +meta { + name: Users + seq: 8 +} + +auth { + mode: inherit +}