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