/** * Store a newly created resource in storage. * POST /users * * @return Response */ public function store() { $validator = User::validate(Input::all()); $token = Input::get('token'); if ($validator->fails()) { return $this->respondInsufficientPrivileges($validator->messages()->all()); } $smsEntry = SMS::where('token', $token)->orderBy('id')->first(); if (!$smsEntry) { return $this->respondInsufficientPrivileges('user.invalid-token'); } if (!$smsEntry->verified) { return Response::json(['error' => ['message' => 'Your number is not yet verified. Please re-register.', 'status' => 1]], 403); } $device = Device::create(['udid' => $smsEntry->device, 'auth_token' => base64_encode(openssl_random_pseudo_bytes(32)), 'phone' => $smsEntry->phone]); $phone = Phone::create(['number' => $smsEntry->phone]); $user = new User(Input::all()); if (Input::hasFile('img')) { $user->setAvatar(Input::file('img')); } else { //FIXME cant get default postgres value to work // $user->img_origin = S3_PUBLIC.'placeholder_128.png'; // $user->img_middle = S3_PUBLIC.'placeholder_128.png'; // $user->img_small = S3_PUBLIC.'placeholder_64.png'; } $user->phone_id = $phone->id; $user->password = Input::get('password'); $user->urgent_calls = 2; $user->save(); $user->roles()->attach(3); // user role $user->devices()->save($device); $user->phones()->save($phone); $user->subscriptions()->attach([2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56, 57, 58]); // Category::updateSubsCounts(); $smsEntry->delete(); $response['user'] = $this->collectionTransformer->transformUserToSmall($user); $response['auth_token'] = $device->auth_token; return $this->respond($response); // Mail::send('emails.verify', ['token' => $user->verification_code], function($message) use ($user) { // $message->to($user->email, $user->name.' '.$user->family_name)->subject('Verify your account'); // }); }