function forgotPassword(Request $request) { $response = new stdClass(); if ($request->isMethod("POST")) { $postData = $request->all(); $apiToken = ""; if (isset($postData['api_token'])) { $apiToken = $postData['api_token']; } $method = ""; if (isset($postData['method'])) { $method = $postData['method']; } $objUserModel = new User(); switch ($method) { case "enterEmailId": $fpwemail = ''; if (isset($postData['fpwemail'])) { $fpwemail = $postData['fpwemail']; } if ($apiToken == $this->API_TOKEN) { if ($fpwemail != '') { $resetCode = mt_rand(100000, 999999); $exist = $objUserModel->isMailExist($fpwemail, $resetCode); if ($exist) { $whereForUpdate = ['rawQuery' => 'email = ?', 'bindParams' => [$fpwemail]]; $mandrill = new Mandrill($this->MANDRILL_KEY); $async = false; $ip_pool = 'Main Pool'; $message = array('html' => "<div ><h3>You are requist for reset password<h3>\n <p>Click below link to reset your password</p>\n <a href='" . $this->HOST_URL . "/user/verifyResetCode/" . $resetCode . "'>" . env('HOST_URL') . "/user/verifyResetCode/" . $resetCode . "</a>\n </div>", 'subject' => "Reset Code", 'from_email' => "*****@*****.**", 'to' => array(array('email' => $postData['fpwemail'], 'type' => 'to')), 'merge_vars' => array(array("rcpt" => $postData['fpwemail'], 'vars' => array(array("name" => "usermail", "content" => $postData['fpwemail']), array('name' => 'resetcode', 'content' => $resetCode))))); $mailResponse = $mandrill->messages->send($message, $async, $ip_pool); if ($mailResponse[0]['status'] == "sent") { $response->code = 200; $response->message = "Mail Sent with Reset code "; $response->data = 1; } else { if ($mailResponse[0]['status'] == "rejected") { $response->code = 200; $response->message = "Mail Sending failed"; $response->data = 1; } } } else { $response->code = 400; $response->message = "Email Doesn't Exist. Enter correct Email."; $response->data = null; } } else { $response->code = 400; $response->message = "Email is required."; $response->data = null; } } else { $response->code = 401; $response->message = "Access Denied"; $response->data = null; } echo json_encode($response, true); break; case 'verifyResetCode': $resetCode = ''; if (isset($postData['resetCode'])) { $resetCode = $postData['resetCode']; } if ($apiToken == $this->API_TOKEN) { if ($resetCode != '') { $whereForUpdate = ['rawQuery' => 'pd_reset_token = ?', 'bindParams' => [$resetCode]]; $exists = $objUserModel->verifyResetCode($whereForUpdate); if ($exists) { $response->code = 200; $response->message = "Reset Code Verified Successfully."; $response->data = $exists; } else { $response->code = 400; $response->message = "Reset Code Didn't Matched."; $response->data = null; } } else { $response->code = 400; $response->message = "You missed something"; $response->data = null; } } else { $response->code = 401; $response->message = "Access Denied"; $response->data = null; } echo json_encode($response, true); break; case 'resetPassword': $resetCode = ''; if (isset($postData['resetCode'])) { $resetCode = $postData['resetCode']; } $password = ''; if (isset($postData['newPassword'])) { $password = $postData['newPassword']; } $conformPassword = ''; if (isset($postData['conformNewPassword'])) { $conformPassword = $postData['conformNewPassword']; } $rules = array('resetCode' => 'required', 'newPassword' => 'required', 'conformNewPassword' => 'required|same:newPassword'); $validator = Validator::make($request->all(), $rules); if (!$validator->fails()) { if ($apiToken == $this->API_TOKEN) { if ($password == $conformPassword) { $exists = $objUserModel->resetPassword($resetCode, Hash::make($password)); if ($exists) { $response->code = 200; $response->message = "Password Changed Successfully."; $response->data = $exists; } else { $response->code = 400; $response->message = "Something went Wrong. Provide Correct Input."; $response->data = null; } } else { $response->code = 400; $response->message = "Password Didn't match"; $response->data = null; } } else { $response->code = 401; $response->message = "Access Denied"; $response->data = null; } } else { $response->code = 400; $response->message = $validator->messages(); $response->data = $request->all(); } echo json_encode($response, true); break; default: break; } } else { $response->code = 400; $response->message = "Request Not allowed"; $response->data = null; echo json_encode($response); } }