validate([ 'nama_lengkap' => ['required', 'string', 'max:255'], 'alamat' => ['required', 'string', 'max:255'], 'tgl_lahir' => ['required', 'date'], 'nama_wali' => ['nullable', 'string', 'max:255'], 'no_telp_wali' => ['nullable', 'string', 'max:255'], 'peran' => ['required', 'in:santri,pengajar'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 'password' => ['required', 'string', 'min:8'], ]); $user = User::create([ 'nama_lengkap' => $request->nama_lengkap, 'alamat' => $request->alamat, 'tgl_lahir' => $request->tgl_lahir, 'nama_wali' => $request->nama_wali, 'no_telp_wali' => $request->no_telp_wali, 'peran' => $request->peran, 'email' => $request->email, 'password' => Hash::make($request->password), ]); $tokenResult = $user->createToken('authToken')->plainTextToken; return ResponseFormatter::success([ 'access_token' => $tokenResult, 'token_type' => 'Bearer', 'user' => $user, ], 'User Registered'); } catch (Exception $error) { return ResponseFormatter::error([ 'message' => 'Something went wrong', 'error' => $error->getMessage(), ], 'Authentication Failed', 500); } } public function login(Request $request) { try { $request->validate([ 'email' => 'required|string', 'password' => 'required' ]); $user = User::where('email', $request->email)->first(); if (!$user || !Hash::check($request->password, $user->password)) { return ResponseFormatter::error([ 'message' => 'email atau password salah' ], 'Authentication Failed', 401); } $tokenResult = $user->createToken('authToken')->plainTextToken; return ResponseFormatter::success([ 'access_token' => $tokenResult, 'token_type' => 'Bearer', // 'user' => $user 'user' => [ 'peran' => $user->peran // Pastikan 'status' ada di sini ] ], 'Authenticated'); } catch (Exception $error) { return ResponseFormatter::error([ 'message' => 'Something went wrong', 'error' => $error->getMessage() ], 'Authentication Failed', 500); } } public function fetch(Request $request) { return ResponseFormatter::success($request->user(), 'Data berhasil di ambil'); } public function logout(Request $request) { $token = $request->user()->currentAccessToken()->delete(); return ResponseFormatter::success($token, 'Token Revoked'); } }