/** * This service is use for Forgot Password has 3 methods EnterEmailId, verifyResetCode and resetPassword * @param api_token, fpwemail, resetcode, method, password, re_password * @return int */ public function forgotPassword(Request $request) { $response = new stdClass(); if ($request->isMethod("POST")) { $postData = $request->all(); $API_TOKEN = env('API_TOKEN'); $apitoken = ""; if (isset($postData['api_token'])) { $apitoken = $postData['api_token']; } $method = ""; if (isset($postData['method'])) { $method = $postData['method']; } $objUsersModel = new User(); switch ($method) { case "EnterEmailId": if ($request->isMethod("POST")) { $fpwemail = ''; if (isset($postData['fpwemail'])) { $fpwemail = $postData['fpwemail']; } if ($apitoken == $API_TOKEN) { if ($fpwemail != '') { $resetcode = mt_rand(100000, 999999); $exists = $objUsersModel->checkMail($fpwemail, $resetcode); if ($exists) { $objMailTemplate = new MailTemplate(); $temp_name = "Enter_mail_fp"; $mailTempContent = $objMailTemplate->getTemplateByName($temp_name); $key = env('MANDRILL_KEY'); $mandrill = new Mandrill($key); $async = false; $ip_pool = 'Main Pool'; $message = array('html' => $mailTempContent->temp_content, '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))))); $mailrespons = $mandrill->messages->send($message, $async, $ip_pool); if ($mailrespons[0]['status'] == "sent") { $response->code = 200; $response->message = "Mail Sent with Reset code"; $response->data = 1; } } else { $response->code = 400; $response->message = "Email Doesnt Exist. Enter correct Email."; $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; } } else { $response->code = 401; $response->message = "Invalid request"; $response->data = null; } echo json_encode($response, true); break; case "verifyResetCode": if ($request->isMethod("POST")) { $fpwemail = ''; if (isset($postData['fpwemail'])) { $fpwemail = $postData['fpwemail']; } $resetcode = ''; if (isset($postData['resetcode'])) { $resetcode = $postData['resetcode']; } if ($apitoken == $API_TOKEN) { if ($fpwemail != '' && $resetcode != '') { $whereForUpdate = ['rawQuery' => 'email = ? and reset_code = ?', 'bindParams' => [$fpwemail, $resetcode]]; $exists = $objUsersModel->verifyResetCode($whereForUpdate); if ($exists) { $response->code = 200; $response->message = "Reset Code Verified Successfully."; $response->data = $exists; } else { $response->code = 400; $response->message = "Reset Code Didnt Matched, Enter Correct Reset Code."; $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; } } else { $response->code = 401; $response->message = "Invalid request"; $response->data = null; } echo json_encode($response, true); break; case "resetPassword": if ($request->isMethod("POST")) { $fpwemail = ''; if (isset($postData['fpwemail'])) { $fpwemail = $postData['fpwemail']; } $resetcode = ''; if (isset($postData['resetcode'])) { $resetcode = $postData['resetcode']; } $password = ''; if (isset($postData['password'])) { $password = $postData['password']; } $re_password = ''; if (isset($postData['re_password'])) { $re_password = $postData['re_password']; } if ($apitoken == $API_TOKEN) { if ($fpwemail != '' && $resetcode != '' && $password != '' && $re_password != '') { if ($password == $re_password) { $exists = $objUsersModel->resetPassword($fpwemail, $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 Didnt match"; $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; } } else { $response->code = 401; $response->message = "Invalid request"; $response->data = null; } echo json_encode($response, true); break; default: break; } } }