all(),[ 'email_id' => 'required|email', 'password' => 'required|string|min:6' ]); $credentials = $request->only('email_id', 'password'); $token = Auth::guard('api')->attempt($credentials); // $token = auth('api')->attempt($credentials); // dd("TOKEN",$token); if (!$token) { return response()->json([ 'success' => false, 'message' => 'Wrong Creditials', 'status'=>401, ], 401); } $user = Auth::guard('api')->user(); // dd($user->end_date); $todays_date = Carbon::now()->toDateString(); // dd($todays_date); $endDate = Carbon::parse($user->end_date); $startDate = Carbon::parse($user->start_date)->toDateString(); $subscriptionEndsIn7Days = $endDate->addDays(7)->toDateString(); if($subscriptionEndsIn7Days == null || $subscriptionEndsIn7Days < $todays_date){ $logout = auth('api')->logout(); return response()->json([ 'success' => false, 'message' => 'Subscription end', 'status'=>201,], 201); } if($startDate > $todays_date){ $logout = auth('api')->logout(); return response()->json([ 'success' => false, 'message' => 'Subscription end', 'status'=>201,], 201); } $personalAccessToken = new PersonalAccessToken(); $personalAccessToken->user_id = $user->id; $personalAccessToken->token = $token; $personalAccessToken->last_login = Carbon::now()->format('Y-m-d H:i:s'); $personalAccessToken->save(); //moodometer add data $existingRecord = mood_o_meter::where('user_id', $user->id)->exists(); if (!$existingRecord) { // Create a new mood record $newEntry = mood_o_meter::create([ 'user_id' => $user->id, 'mood_o_meter' => null, 'is_active' => '1', ]); } //Leaderboard add data $existingRecord = LeaderboardMaster::where('user_id', $user->id)->exists(); if (!$existingRecord) { // Create a new leaderbaord record $newEntry = LeaderboardMaster::create([ 'user_id' => $user->id, 'total_score' => '0', 'progress_bar' => '0', ]); } $user = User::with('user_detail')->where('id', $user->id)->first()->toArray(); // $user = User::select('id','full_name','contact_number','email_id','status')->where('id',$user->id)->first()->toArray(); return response()->json([ 'success' => true, 'status' => true, 'message'=> 'You are successfully logged in', 'authorisation' => [ 'token' => $token, 'user_data' => $user, 'type' => 'bearer', ] ], 200); } public function update_password(Request $request) { $validator = Validator::make($request->all(), [ 'user_id' => 'required|exists:users,id', // 'current_password' => 'required|string|min:6', 'password' => 'required|string|confirmed' ]); if ($validator->fails()) { return response()->json([ 'success' => false, 'status' => 406, 'message' => 'Password does not match', 'error' => $validator->errors(), ], 401); } # Match The Old Password $user = User::where('id', $request->user_id)->first(); $user->password = Hash::make($request->input('password')); $user->update(); return response()->json([ 'success' => true, 'status' => 200, 'message' => 'Password changed successfully!', ]); } public function generate(Request $request) { $validator = Validator::make($request->all(), [ 'email_id' => 'required|email', ]); if ($validator->fails()) { return response()->json([ 'error' => $validator->errors()], 401); } //check user exist or not $email = $request->email_id; $user = User::where('email_id', $email)->first(); if(!$user){ return response(["status" => 404, 'message' => 'Email Id Does Not Exist'] ); } // Generate An Otp $otp = UserEmailOtp::updateOrCreate(['user_id' => $user->id], [ 'otp' => rand(1000, 9999), 'valid_upto' => Carbon::now()->addMinutes(10) ]); if ($otp) { // send otp in the email $mail_details = [ 'email' => $request->email_id, 'subject' => 'Forgot Password', 'body' => 'Your OTP is : ' . $otp->otp ]; $mail = \Mail::to($request->email_id)->send(new SendUserOtp($mail_details)); return response(["status" => 200, "message" => "OTP sent successfully", 'user_id' => $otp['user_id']]); } else { return response(["status" => 401, 'message' => 'Invalid'] ); } } public function verifyOtp(Request $request) { $emailId = $request->email_id; $otp = $request->otp; // dd($emailId,$otp); $user = User::where('email_id', $emailId)->first(); $varificationCode = UserEmailOtp::where('user_id', $user->id)->latest()->first(); // dd($varificationCode); $now = Carbon::now(); if ($varificationCode && $now->isAfter($varificationCode->valid_upto)) { return response()->json([ 'status' => 500, 'message' => 'Your OTP has been expired', ], 500); } if($varificationCode->otp != $otp){ return response(["status" => 401, 'message' => 'Invalid OTP'] ); }else{ return response(["status" => 200, 'message' => 'Valid OTP'] ); } } public function create_new_pass_with_otp(Request $request) { $request->validate([ 'user_id' => 'required|exists:users,id', ]); $validator = Validator::make($request->all(), [ 'user_id' => 'required|exists:users,id', 'otp' => 'required' ]); #Validation Logic $verificationCode = UserEmailOtp::where('user_id', $request->user_id) ->where('otp', $request->otp) ->first(); $now = Carbon::now(); if (!$verificationCode) { return response()->json([ 'status' => 401, 'message' => 'Invalid', ], 401); } elseif ($verificationCode && $now->isAfter($verificationCode->valid_upto)) { return response()->json([ 'status' => 500, 'message' => 'Your OTP has been expired', ], 500); } else { return response()->json([ 'status' => 200, 'message' => 'Otp Verify successfully', ], 200); } } public function resend_otp(Request $request) { $validator = Validator::make($request->all(), [ 'email_id' => 'required|email', ]); if ($validator->fails()) { return response()->json([ 'error' => $validator->errors()], 401); } // Generate An Otp $email = $request->email_id; $user = User::where('email_id', $email)->first(); $otp = UserEmailOtp::updateOrCreate(['user_id' => $user->id], [ 'otp' => rand(1000, 9999), 'valid_upto' => Carbon::now()->addMinutes(10) ]); if ($otp) { // send otp in the email $mail_details = [ 'email' => $request->email_id, 'subject' => 'Forgot Password', 'body' => 'Your OTP is : ' . $otp->otp ]; // print_r($mail_details);exit; \Mail::to($request->email_id)->send(new SendUserOtp($mail_details)); return response(["status" => 200, "message" => "OTP sent successfully", 'user_id' => $otp['user_id']]); } else { return response(["status" => 401, 'message' => 'Invalid'] ); } // $message = "Your otp is - ".$varificationCode->otp; return response()->json([ 'success' => true, 'status' => 200, 'message' => $message, ]); } public function resetPassword(Request $request){ $userId = $request->user_id; $oldPass = $request->old_pass; $newPass = $request->new_pass; //check old password is not match with new password $userPass = User::where('id',$userId)->first(); if(!Hash::check($oldPass,$userPass->password)){ return response()->json([ 'status'=>201 , 'message'=>'Wrong Password' ]); }elseif(Hash::check($newPass,$userPass->password)){ return response()->json([ 'status'=>201 , 'message'=>'New Password and Old Password Cannot Be same' ]); }else{ $user = User::where('id', $userId)->first(); $user->password = Hash::make($newPass); $user->update(); return response()->json([ 'success' => true, 'status' => 200, 'message' => 'Password changed successfully!', ]); } } }