Example #1
0
 /**
  * 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');
     //		});
 }
Example #2
0
 /**
  * Subscribe to category with provided title
  *
  * @param $user
  * @param $title
  */
 private function subscribe(\User $user, $title)
 {
     if (!$user->subscriptions()->whereRaw("LOWER(title) = LOWER(?)", [$title])->first()) {
         if ($category = Category::whereRaw("LOWER(title) = LOWER(?)", [$title])->first()) {
             $user->subscriptions()->attach($category->id);
         }
     }
 }