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; }
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; }