function signUp(Request $request)
 {
     $response = new stdClass();
     if ($request->isMethod("POST")) {
         $postData = $request->all();
         $objUsermeta = new Usersmeta();
         $apiToken = "";
         if (isset($postData['api_token'])) {
             $apiToken = $postData['api_token'];
         }
         if ($apiToken == $this->API_TOKEN) {
             $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|unique:users', 'email' => 'required|email|max:255|unique:users', 'password' => 'required|regex:/^[A-Za-z0-9@#$_\\s]+$/', 'conform_password' => 'required|same:password');
             $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.', 'email.unique' => 'E-Mail address already exist', 'password.regex' => 'The :attribute cannot contain special characters except @#$_.'];
             $validator = Validator::make($request->all(), $rules, $messages);
             if (!$validator->fails()) {
                 $password = $postData['password'];
                 //                //generate random password
                 //                $password="";
                 //                $charecters=array_merge(range('A','Z'),range('a', 'z'), range('0', '9'));
                 //                $max=count($charecters)-1;
                 //                for($i=0;$i<8;$i++)
                 //                {
                 //                    $rand= mt_rand(0,$max);
                 //                    $password.=$charecters[$rand];
                 //                }
                 $user = User::create(['name' => $postData['firstname'], 'lastname' => $postData['lastname'], 'username' => $postData['username'], 'skype_username' => isset($postData['skypeUsername']) ? $postData['skypeUsername'] : '', 'email' => $postData['email'], 'password' => bcrypt($password), 'status' => '0', 'role' => '1', 'user_timezone' => $postData['user_timezone']]);
                 //                    if ($user) {
                 ////                        $userOriginalData = $user['original'];
                 //
                 //                        $response->code = 200;
                 //                        $response->message = "Signup successful.";
                 //                        $response->data = $userOriginalData;
                 //                        echo json_encode($response);
                 ////                        }
                 //
                 //                    }
                 //                TODO this code is used for sending conformation ,mail with random generated password
                 if ($user) {
                     $mandrill = new Mandrill($this->MANDRILL_KEY);
                     $async = false;
                     $ip_pool = 'Main Pool';
                     $message = array('html' => '<div>
                                 <h3>Registration Successful</h3><br>
                                 <span>You have succesfull sign up, please wait for Admin Approval and use this credentials for login.</span><br>
                                 <p>Username :'******'username'] . '<br>
                                     Password: '******'
                                 </p>
                               </div>', '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['firstname']), 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' => [$user->id]];
                         $deleteUser = $objuser->deleteUserDetails($whereForUpdate);
                         //If mail sending fails then delete user details from db
                         $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 = 100;
                 $response->message = $validator->messages();
                 echo json_encode($response);
             }
         } else {
             $response->code = 401;
             $response->message = "Access Denied";
             $response->data = null;
             echo json_encode($response, true);
         }
     } else {
         $response->code = 400;
         $response->message = "Request Not allowed";
         $response->data = null;
         echo json_encode($response);
     }
 }