all(); try { $validated = $request->validate([ 'name' => 'required|string|max:100', 'email' => 'required|email|unique:users,email', 'id_pegawai' => 'required', 'password' => 'required|string|min:6', ]); $user = User::create([ 'name' => $validated['name'], 'email' => $validated['email'], 'id_pegawai' => $validated['id_pegawai'], 'password' => Hash::make($validated['password']), ]); DB::commit(); return response()->json([ 'message' => 'User berhasil didaftarkan', 'user' => $user, 'token_type' => 'Bearer', ], 201); } catch (\Exception $e) { DB::rollBack(); return response()->json([ 'message' => 'Terjadi kesalahan saat registrasi', 'error' => $e->getMessage() ], 500); } } public function loginUser(Request $request) { // return $request->all(); try { $credentials = $request->validate([ 'name' => 'required', 'password' => 'required', ]); if (!Auth::attempt($credentials)) { return response()->json([ 'message' => 'Username atau password salah', ], 401); } $user = Auth::user(); if ($user->statusenabled === false) { return response()->json([ 'message' => 'Akun dinonaktifkan' ], 403); } $token = $user->createToken('auth_token')->plainTextToken; return response()->json([ 'message' => 'Login berhasil', 'user' => $user, 'access_token' => $token, 'token_type' => 'Bearer', ]); } catch (\Exception $e) { return response()->json([ 'message' => 'Terjadi kesalahan saat login', 'error' => $e->getMessage() ], 500); } } public function logoutUser(Request $request) { try { $request->user()->currentAccessToken()->delete(); return response()->json([ 'message' => 'Berhasil logout dan token dihapus', ]); } catch (\Exception $e) { return response()->json([ 'message' => 'Gagal logout', 'error' => $e->getMessage() ], 500); } } }