/**
  *  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;
         }
     }
 }