示例#1
0
 public function create()
 {
     $this->_methodName = 'create';
     $this->resolveParams();
     if ($this->checkAuth() && !Auth::checkAdmin()) {
         throw new \App\Exceptions\ExceptionApiMethodbad($this->_typeName, $this->_methodName, $this->_request_params);
     }
     $arNeed = ['name' => 'required', 'description' => 'required', 'score' => 'required|numeric', 'timer' => 'required', 'userAvailable' => 'required_without:userAll', 'userAll' => 'required_without:userAvailable|in:true,false'];
     $this->checkAttr($arNeed);
     $this->checkAuth();
     $this->checkAuthAdmin();
     $task = new \App\Task();
     $task->name = $this->_request_params['name'];
     $task->description = $this->_request_params['description'];
     $task->point = $this->_request_params['score'];
     $task->timer = $this->_request_params['timer'];
     $task->save();
     if (!isset($this->_request_params['userAvailable'])) {
         $users = \App\Users::all();
     } else {
         $userArray = explode(';', $this->_request_params['userAvailable']);
         $users = \App\Users::whereIn('id', $userArray)->get();
     }
     foreach ($users as $user) {
         $task_user = new \App\UserTask();
         $task_user->id_task = $task->id;
         $task_user->id_user = $user->id;
         $task_user->status = 'available';
         $task_user->save();
         $users_array[] = $user->email;
     }
     $MESSAGE = 'Added new task';
     $url = 'https://api.parse.com/1/push';
     $data = array('where' => ['email' => ['$in' => $users_array]], 'data' => array('alert' => $task->name, 'title' => $MESSAGE));
     $_data = json_encode($data);
     $headers = array('X-Parse-Application-Id: ' . $this->APPLICATION_ID, 'X-Parse-REST-API-Key: ' . $this->REST_API_KEY, 'Content-Type: application/json', 'Content-Length: ' . strlen($_data));
     $curl = curl_init($url);
     curl_setopt($curl, CURLOPT_POST, 1);
     curl_setopt($curl, CURLOPT_POSTFIELDS, $_data);
     curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
     curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
     curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
     $response = curl_exec($curl);
     $this->_arData['data']['idTask'] = $task->id;
     return $this;
 }
示例#2
0
 public function registration()
 {
     $this->_methodName = 'registration';
     $this->resolveParams();
     $arNeed = ['email' => 'required|email|max:200|unique:user', 'firstName' => 'required', 'lastName' => 'required', 'birthday' => 'required|date|date_format:"d.m.Y"'];
     $this->checkAttr($arNeed);
     if (Auth::check() && !Auth::checkAdmin()) {
         throw new \App\Exceptions\ExceptionApiAuthAlready(['email' => $this->_request_params['email'], 'firstName' => $this->_request_params['firstName'], 'lastName' => $this->_request_params['lastName'], 'birthday' => $this->_request_params['birthday']], $this->_typeName, $this->_methodName);
     }
     $reg_user = \App\Users::whereEmail($this->_request_params['email'])->first();
     if (is_null($reg_user)) {
         if (Auth::checkAdmin()) {
             $reg_user = new \App\Users();
             $reg_user->email = $this->_request_params['email'];
             $reg_user->first_name = $this->_request_params['firstName'];
             $reg_user->last_name = $this->_request_params['lastName'];
             $reg_user->bithday = Carbon::createFromFormat('d.m.Y', $this->_request_params['birthday'])->toDateTimeString();
             $password = $this->generateCode(8);
             $this->_user = $reg_user;
             $reg_user->bonusPoint = Auth::user()->point;
             $reg_user->password = Hash::make($password);
             if (isset($this->_request_params['occupation'])) {
                 $arNeed = ['occupation' => 'required|max:64'];
                 $this->checkAttr($arNeed);
                 $reg_user->occupation = $this->_request_params['occupation'];
             }
             if (isset($this->_request_params['city'])) {
                 $arNeed = ['city' => 'required|max:64'];
                 $this->checkAttr($arNeed);
                 $reg_user->city = $this->_request_params['city'];
             }
             if (isset($this->_request_params['street'])) {
                 $arNeed = ['street' => 'required|max:128'];
                 $this->checkAttr($arNeed);
                 $reg_user->street = $this->_request_params['street'];
             }
             $reg_user->save();
             $tasks = \App\Task::where('userAll', 1)->get();
             foreach ($tasks as $task) {
                 $task_user = new \App\UserTask();
                 $task_user->id_task = $task->id;
                 $task_user->id_user = $reg_user->id;
                 $task_user->status = 'available';
                 $task_user->save();
             }
         } else {
             $reg_user = new \App\Users();
             $reg_user->email = $this->_request_params['email'];
             $reg_user->first_name = $this->_request_params['firstName'];
             $reg_user->last_name = $this->_request_params['lastName'];
             $reg_user->bithday = Carbon::createFromFormat('d.m.Y', $this->_request_params['birthday'])->toDateTimeString();
             $password = $this->generateCode(8);
             $reg_user->password = Hash::make($password);
             $this->_user = $reg_user;
             $reg_user->bonusPoint = \App\Admin::all()->first()->point;
             $reg_user->save();
             $tasks = \App\Task::where('userAll', 1)->get();
             foreach ($tasks as $task) {
                 $task_user = new \App\UserTask();
                 $task_user->id_task = $task->id;
                 $task_user->id_user = $reg_user->id;
                 $task_user->status = 'available';
                 $task_user->save();
             }
         }
     } else {
         throw new \App\Exceptions\ExceptionApiUserEmailExist($this->_request_params, $this->_typeName, $this->_methodName);
     }
     Mail::send('mail.welcome', ['data' => ['email' => $reg_user->email, 'password' => $password]], function ($message) {
         $message->to($this->_user->email)->subject('Добро пожаловать!');
     });
     return $this;
 }