all(), [ 'email' => ['required', 'email'], 'password' => ['required', 'min:6'], ]); if ($validator->fails()) { return $this->apiResponse(false, $validator->errors()->first(), $validator->errors()); } try { $user = User::where('email', $request->email)->where('role', 'STUDENT')->first(); if (!$user || !Hash::check($request->password, $user->password)) { $message = 'The provided credentials are incorrect.'; return $this->apiResponse(false, $message); } if ($user->status != 1){ return $this->apiResponse(false, 'You account is not activated', [], 401); } $token = $user->createToken($user->email)->plainTextToken; $banners = Banner::where('status', true)->latest()->take(config('custom.HOME_RECORD_LIMIT'))->get(); $categories = Category::where('status', true)->latest()->take(config('custom.HOME_RECORD_LIMIT'))->get(); $courses = $user->courses; $transactions = $user->transactions; $settings = Setting::first(); $data = collect([ 'student' => new UserResource($user), 'banners' => BannerResource::collection($banners), 'courseCategories' => CategoryResource::collection($categories), 'courses' => CourseResource::collection($courses), 'transactions' => TransactionResource::collection($transactions), 'settings' => new SettingResource($settings), 'token' => $token ]); $message = 'Authorized successfully'; return $this->apiResponse(true, $message, $data); } catch (\Throwable $exception) { return $this->apiResponse(false, $exception->getMessage()); } } public function resetPassword(Request $request){ $validator = Validator::make($request->all(), [ 'email' => ['required', 'email'], ]); if ($validator->fails()) { return $this->apiResponse(false, $validator->errors()->first(), $validator->errors()); } try { $user = User::where('email', $request->email)->first(); if (!$user){ return $this->apiResponse(false, 'No user found'); } $token = encrypt($user->email); $route = route('password.reset',['token'=>$token]); $data = [ 'name'=>$user->name, 'route'=>$route ]; $status = Password::sendResetLink($user->email); // $user->notify(new EmailVerification($data)); $message = 'Check your email to rest your password'; return $this->apiResponse(true, $message); } catch (\Throwable $exception) { return $this->apiResponse(false, $exception->getMessage()); } } }