예제 #1
0
 /**
  * Метод создания пользователя, путешествия, покупки
  * возвращает массив JSON с ошибками
  */
 public function actionaddPurchase()
 {
     if (empty(Yii::app()->request->csrfToken)) {
         throw new CHttpException('403', 'Ошибочный запрос, отказано в доступе.');
     }
     $params = CJSON::decode(file_get_contents('php://input'), true);
     $errors = array();
     $user = new Users();
     $user->username = $params['data']['userfullname'];
     $user->password = $params['data']['password'];
     $user->email = $params['data']['email'];
     $user->first_name = strpos($params['data']['userfullname'], ' ') === false ? $params['data']['userfullname'] : substr($params['data']['userfullname'], 0, strpos($params['data']['userfullname'], ' '));
     $user->last_name = strpos($params['data']['userfullname'], ' ') === false ? $params['data']['userfullname'] : substr($params['data']['userfullname'], strpos($params['data']['userfullname'], ' '));
     if ($user->validate()) {
         if (!$user->save()) {
             throw new CHttpException('403', 'Ошибочный запрос, не удалось обновить user');
         }
     } else {
         throw new CHttpException('403', 'Ошибочный запрос, не удалось обновить user');
     }
     $trip = new Trip();
     $trip->users__id = $user->id;
     $trip->departure = $params['data']['departure'];
     $trip->destination = $params['data']['destination'];
     $trip->date_start = date("Y-m-d", strtotime($params['data']['date_start']));
     $trip->date_end = date("Y-m-d", strtotime($params['data']['date_end']));
     if ($trip->validate()) {
         if (!$trip->save()) {
             throw new CHttpException('403', 'Ошибочный запрос, не удалось обновить trip');
         }
     } else {
         throw new CHttpException('403', 'Ошибочный запрос, не удалось обновить trip');
     }
     $purchase = new Purchases();
     $purchase->users__id = $user->id;
     $purchase->trip__id = $trip->id;
     $purchase->name = $params['data']['name'];
     $purchase->price = $params['data']['price'];
     if ($purchase->validate()) {
         if (!$purchase->save()) {
             throw new CHttpException('403', 'Ошибочный запрос, не удалось обновить purchase');
         }
     } else {
         throw new CHttpException('403', 'Ошибочный запрос, не удалось обновить purchase validate');
     }
     $errors['customer'] = array_merge($user->getErrors(), $trip->getErrors());
     echo CJSON::encode($errors);
 }