/** * This service is use to handle profile it has 4 methods changegeneralinfo, changeshippinginfo, changepassword and changeavtar * @param changegeneralinfo : method, user_id, firstname, lastname, contact_no, api_token, secondary_email * @return $updategeneralinfo * @param changeshippinginfo : method, user_id, mytoken, city, state, zipcode, api_token, address_line_1, address_line_2 * @return $updateshippinginfo * @param changepassword : method, user_id, oldPassword, newPassword, reNewPassword, api_token * @return $Updatepassword * @param changeavtar : method, user_id, api_token, input_file_preview * @return $url */ public function profileAjaxHandler(Request $request) { $response = new stdClass(); if ($request->isMethod("POST")) { $postData = $request->all(); $API_TOKEN = env('API_TOKEN'); $method = ""; if (isset($postData['method'])) { $method = $postData['method']; } $objuser = new User(); $objusermetamodel = new Usersmeta(); switch ($method) { case "changegeneralinfo": $userId = ""; if (isset($postData['user_id'])) { $userId = $postData['user_id']; } $firstname = ""; if (isset($postData['firstname'])) { $firstname = $postData['firstname']; } $lastname = ""; if (isset($postData['lastname'])) { $lastname = $postData['lastname']; } $contact_no = ""; if (isset($postData['contact_no'])) { $contact_no = $postData['contact_no']; } $email = ""; if (isset($postData['email'])) { $email = $postData['email']; } $username = ""; if (isset($postData['username'])) { $username = $postData['username']; } $authFlag = false; if (isset($postData['api_token'])) { $apitoken = $postData['api_token']; if ($apitoken == $API_TOKEN) { $authFlag = true; } else { if ($userId != '') { $whereForUpdate = ['rawQuery' => 'id =?', 'bindParams' => [$userId]]; $Userscredentials = $objuser->getUsercredsWhere($whereForUpdate); if ($apitoken == $Userscredentials->login_token) { $authFlag = true; } } } } if ($authFlag) { $rules = array('firstname' => 'required|regex:/^[A-Za-z\\s]+$/|max:255', 'lastname' => 'required|regex:/^[A-Za-z\\s]+$/|max:255', 'username' => 'required|regex:/^[A-Za-z0-9._\\s]+$/|max:255', 'email' => 'required|email|max:255', 'user_id' => 'required'); $messages = ['firstname.regex' => 'The :attribute cannot contain special characters.', 'lastname.regex' => 'The :attribute cannot contain special characters.', 'username.regex' => 'The :attribute cannot contain special characters.']; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { $response->code = 100; $response->message = $validator->messages(); $response->data = null; echo json_encode($response, true); } else { $whereForUpdate = ['rawQuery' => 'id =?', 'bindParams' => [$userId]]; $currentUserDetails = $objuser->getUsercredsWhere($whereForUpdate); $uniqueflag = false; if ($currentUserDetails->username == $username && $currentUserDetails->username == $email) { $uniqueflag = true; } else { if ($currentUserDetails->username != $username && $currentUserDetails->username == $email) { $uniqueflag = true; } else { if ($currentUserDetails->username == $username && $currentUserDetails->username != $email) { $uniqueflag = true; } else { $rules = array('username' => 'unique:users', 'email' => 'unique:users'); $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { $response->code = 100; $response->message = $validator->messages(); $response->data = null; echo json_encode($response, true); } else { $uniqueflag = true; } } } } if ($uniqueflag) { $whereForId = ['rawQuery' => 'id =?', 'bindParams' => [$userId]]; $data = array('name' => $firstname, 'last_name' => $lastname, 'username' => $username, 'email' => $email); $updategeneralinfo = $objuser->UpdateUserDetailsbyId($whereForId, $data); $whereForUserId = ['rawQuery' => 'user_id =?', 'bindParams' => [$userId]]; $Isuseravailable = $objusermetamodel->getUsermetaWhere($whereForUserId); if ($Isuseravailable) { $dataupdate = array('phone' => "{$contact_no}"); $UpdateUsermeta = $objusermetamodel->UpdateUsermetawhere($whereForUserId, $dataupdate); } else { $dataadd = array('user_id' => $userId, 'phone' => $contact_no); $Addusermeta = $objusermetamodel->addUsermeta($dataadd); } if ($updategeneralinfo) { $response->code = 200; $response->message = "Update Successful"; $response->data = $updategeneralinfo; echo json_encode($response, true); } else { $response->code = 400; $response->message = "Something went wrong"; $response->data = 1; echo json_encode($response, true); } } } } else { $response->code = 401; $response->message = "Access Denied"; $response->data = null; echo json_encode($response, true); } break; case "changeshippinginfo": $userId = ""; if (isset($postData['user_id'])) { $userId = $postData['user_id']; } $City = ""; if (isset($postData['city'])) { $City = $postData['city']; } $State = ""; if (isset($postData['state'])) { $State = $postData['state']; } $Zip_code = ""; if (isset($postData['zipcode'])) { $Zip_code = $postData['zipcode']; } // $country = ""; // if (isset($postData['country'])) { // $country = $postData['country']; // } $Address1 = ""; if (isset($postData['address_line_1'])) { $Address1 = $postData['address_line_1']; } $Address2 = ""; if (isset($postData['address_line_2'])) { $Address2 = $postData['address_line_2']; } $authFlag = false; if (isset($postData['api_token'])) { $apitoken = $postData['api_token']; if ($apitoken == $API_TOKEN) { $authFlag = true; } else { if ($userId != '') { $whereForUpdate = ['rawQuery' => 'id =?', 'bindParams' => [$userId]]; $Userscredentials = $objuser->getUsercredsWhere($whereForUpdate); if ($apitoken == $Userscredentials->login_token) { $authFlag = true; } } } } if ($authFlag) { $rules = array('city' => 'required', 'state' => 'required', 'zipcode' => 'required', 'address_line_1' => 'required'); $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { $response->code = 100; $response->message = $validator->messages(); $response->data = null; echo json_encode($response); } else { $whereForUserId = ['rawQuery' => 'user_id =?', 'bindParams' => [$userId]]; $Isuseravailable = $objusermetamodel->getUsermetaWhere($whereForUserId); if ($Isuseravailable) { $data = array('city' => $City, 'state' => $State, 'zipcode' => $Zip_code, 'addressline1' => $Address1, 'addressline2' => $Address2); $updateshippinginfo = $objusermetamodel->UpdateUsermetawhere($whereForUserId, $data); } else { $dataadd = array('user_id' => $userId, 'city' => $City, 'state' => $State, 'zipcode' => $Zip_code, 'addressline1' => $Address1, 'addressline2' => $Address2); $Addusermeta = $objusermetamodel->addUsermeta($dataadd); } if ($updateshippinginfo || $Addusermeta) { $response->code = 200; $response->message = "Update Successful"; $response->data = 1; echo json_encode($response, true); } else { $response->code = 400; $response->message = "Something went Wrong"; $response->data = null; echo json_encode($response, true); } } } else { $response->code = 401; $response->message = "Access Denied"; $response->data = null; echo json_encode($response, true); } break; case "changepassword": $userId = ""; if (isset($postData['user_id'])) { $userId = $postData['user_id']; } $oldpassword = ""; if (isset($postData['oldPassword'])) { $oldpassword = $postData['oldPassword']; } $newpassword = ""; if (isset($postData['newPassword'])) { $newpassword = $postData['newPassword']; } $renewpassword = ""; if (isset($postData['reNewPassword'])) { $renewpassword = $postData['reNewPassword']; } $authFlag = false; if (isset($postData['api_token'])) { $apitoken = $postData['api_token']; if ($apitoken == $API_TOKEN) { $authFlag = true; } else { if ($userId != '') { $whereForUpdate = ['rawQuery' => 'id =?', 'bindParams' => [$userId]]; $Userscredentials = $objuser->getUsercredsWhere($whereForUpdate); if ($apitoken == $Userscredentials->login_token) { $authFlag = true; } } } } if ($authFlag) { $rules = array('oldPassword' => 'required', 'newPassword' => 'required', 'reNewPassword' => 'required', 'user_id' => 'required'); $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { $response->code = 100; $response->message = $validator->messages(); $response->data = null; echo json_encode($response); } else { if ($newpassword != $oldpassword) { if ($newpassword == $renewpassword) { $where = ['rawQuery' => 'id =?', 'bindParams' => [$userId]]; $currentUserDetails = $objuser->getUsercredsWhere($where); if (Hash::check($oldpassword, $currentUserDetails->password)) { $newpassword = Hash::make($newpassword); $data = array('password' => $newpassword); $Updatepassword = $objuser->UpdateUserDetailsbyId($where, $data); $response->code = 200; $response->message = "Password Changed Successfully"; $response->data = 1; echo json_encode($response, true); } else { $response->code = 400; $response->message = "Invalid Password"; $response->data = null; echo json_encode($response, true); } } else { $response->code = 400; $response->message = "Both New password should be same"; $response->data = null; echo json_encode($response, true); } } else { $response->code = 400; $response->message = "New and old password should not be same"; $response->data = null; echo json_encode($response, true); } } } else { $response->code = 401; $response->message = "Access Denied"; $response->data = null; echo json_encode($response, true); } break; case "changeavtar": //This method is directly called from Ajax call of profile-setting.blade.php page $userId = ""; if (isset($postData['user_id'])) { $userId = $postData['user_id']; } $authFlag = false; if (isset($postData['api_token'])) { $apitoken = $postData['api_token']; if ($apitoken == $API_TOKEN) { $authFlag = true; } else { if ($userId != '') { $whereForUpdate = ['rawQuery' => 'id =?', 'bindParams' => [$userId]]; $Userscredentials = $objuser->getUsercredsWhere($whereForUpdate); if ($apitoken == $Userscredentials->login_token) { $authFlag = true; } } } } if ($authFlag) { if ($userId != '') { if (Input::hasFile('file')) { $validator = Validator::make($request->all(), ['file' => 'image']); if ($validator->fails()) { $response->code = 100; $response->message = $validator->messages(); $response->data = null; echo json_encode($response); } else { $destinationPath = $_SERVER['DOCUMENT_ROOT'] . '/../../web/public/assets/uploads/useravatar/'; $filename = $userId . '_' . time() . ".jpg"; File::makeDirectory($destinationPath, 0777, true, true); $filePath = $destinationPath . $filename; $quality = $this->imageQuality(Input::file('file')); Image::make(Input::file('file'))->resize(1024, 1024, function ($constraint) { $constraint->aspectRatio(); })->save($filePath, $quality); $filepathupdate = '/assets/uploads/useravatar/' . $filename; $updateData['profilepic'] = $filepathupdate; $where = ['rawQuery' => 'id =?', 'bindParams' => [$userId]]; $UserData = $objuser->getUsercredsWhere($where); $updatedResult = $objuser->UpdateUserDetailsbyId($where, $updateData); if ($updatedResult) { if ($UserData->profilepic != '') { File::delete(public_path() . '/../../web/public' . $UserData->profilepic); } $response->code = 200; $response->message = "Successfully updated profile image."; $response->data = $filepathupdate; echo json_encode($response); } else { $response->code = 400; $response->message = "Something went wrong, please try again."; $response->data = null; echo json_encode($response); } } } else { $response->code = 400; $response->message = "Give correct input and Input Image files should be(jpg,gif,png,jpeg)only"; $response->data = null; echo json_encode($response, true); } } else { $response->code = 400; $response->message = "You need to login to change Avtar."; $response->data = null; echo json_encode($response, true); } } else { $response->code = 401; $response->message = "Access Denied"; $response->data = null; echo json_encode($response, true); } break; default: break; } } else { $response->code = 401; $response->message = "Invalid request"; $response->data = null; echo json_encode($response, true); } }
/** * @param api_token , first_name, last_name, username, email */ public function signup(Request $request) { $response = new stdClass(); if ($request->isMethod("POST")) { $API_TOKEN = env('API_TOKEN'); $postData = $request->all(); $apitoken = ""; if (isset($postData['api_token'])) { $apitoken = $postData['api_token']; } if ($apitoken == $API_TOKEN) { $rules = array('first_name' => 'required|regex:/^[A-Za-z\\s]+$/|max:255', 'last_name' => 'required|regex:/^[A-Za-z\\s]+$/|max:255', 'username' => 'required|regex:/^[A-Za-z0-9._\\s]+$/|max:255|unique:users', 'email' => 'required|email|max:255|unique:users'); $messages = ['first_name.regex' => 'The :attribute cannot contain special characters.', 'last_name.regex' => 'The :attribute cannot contain special characters.', 'username.regex' => 'The :attribute cannot contain special characters.']; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { $response->code = 100; $response->message = $validator->messages(); echo json_encode($response); } else { $password = ""; $characters = array_merge(range('A', 'Z'), range('a', 'z'), range('0', '9')); $max = count($characters) - 1; for ($i = 0; $i < 8; $i++) { $rand = mt_rand(0, $max); $password .= $characters[$rand]; } $supplier = User::create(['name' => $postData['first_name'], 'last_name' => $postData['last_name'], 'email' => $postData['email'], 'password' => Hash::make($password), 'role' => '1', 'status' => '1', 'username' => $postData['username']]); $objUsersMetaModel = new Usersmeta(); if ($postData['optradio'] != '' && $postData['contact_no'] != '' && $postData['date_of_birth'] != '') { $whereForUpdate = ['rawQuery' => 'gender = ? and phone = ? and date_of_birth = ?', 'bindParams' => [$postData['optradio'], $postData['contact_no'], $postData['date_of_birth']]]; $exists = $objUsersMetaModel->UpdateUsermetawhere($whereForUpdate); } if ($supplier) { $objMailTemplate = new MailTemplate(); $temp_name = "signup_success_mail"; $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' => "Registration Successful", 'from_email' => "*****@*****.**", 'to' => array(array('email' => $postData['email'], 'type' => 'to')), 'merge_vars' => array(array("rcpt" => $postData['email'], 'vars' => array(array("name" => "firstname", "content" => $postData['first_name']), array("name" => "password", "content" => $password))))); $mailrespons = $mandrill->messages->send($message, $async, $ip_pool); if ($mailrespons[0]['status'] == "sent") { $response->code = 200; $response->message = "Signup successful. Please check your email for Password"; $response->data = null; echo json_encode($response); } else { $objuser = new User(); $whereForUpdate = ['rawQuery' => 'id =?', 'bindParams' => [$supplier->id]]; $deleteUser = $objuser->deleteUserDetails($whereForUpdate); //If mail sending fails then delete user details $response->code = 400; $response->message = "some Error occured try again"; echo json_encode($response); } } else { $response->code = 400; $response->message = "some Error occured try again"; @($response->data = null); echo json_encode($response); } } } else { $response->code = 401; $response->message = "Request Not allowed"; $response->data = null; echo json_encode($response); } } }