Example #1
0
 public function actionResetRelations()
 {
     foreach (Provider::find()->where(['active' => 1])->all() as $provider) {
         $this->stdout($provider->dataObject->object->name . "...");
         $provider->dataObject->internalUpdateRelations();
         $this->stdout("done!\n");
     }
 }
Example #2
0
 public function actionIndex()
 {
     if (empty(Yii::$app->request->getHeaders()->get('x-api-key')) || empty($_POST['provider']['id'])) {
         throw new NotAcceptableHttpException("Invalid package");
     }
     $provider = Provider::find()->where(['system_id' => $_POST['provider']['id']])->one();
     if (empty($provider)) {
         throw new NotAcceptableHttpException("Provider '" . $_POST['provider']['id'] . "' is not known by this hub");
     }
     if (!isset($provider->dataObject->attributes['apiKey']) || (string) $provider->dataObject->attributes['apiKey'] !== Yii::$app->request->getHeaders()->get('x-api-key')) {
         throw new UnauthorizedHttpException("API key is invalid!");
     }
     if ($provider->dataObject->take($_POST)) {
         Yii::$app->response->data = ['time' => time(), 'status' => 'accepted'];
     } else {
         throw new UnprocessableEntityHttpException("Data was not accepted");
     }
 }
Example #3
0
 public function actionUpdate()
 {
     $this->params['model'] = $model = Provider::find()->where(['id' => $_GET['id']])->one();
     if (empty($model)) {
         throw new NotFoundHttpException("Provider not found");
     }
     $this->params['scenario'] = $scenario = 'update';
     $this->params['instance'] = $this->params['model']->dataObject;
     if (!empty($_POST)) {
         $data = false;
         if (isset($_POST['Provider']['data'])) {
             $data = $_POST['Provider']['data'];
             unset($_POST['Provider']['data']);
         }
         $this->params['model']->load($_POST);
         $this->params['instance']->attributes = $data;
         $this->params['model']->active = 1;
         $valid = $this->params['instance']->validateSetup($scenario);
         if (!$valid) {
             $this->params['model']->validate();
         }
         // $this->params['model']->last_refresh = gmdate("Y-m-d G:i:s");
         if ($valid && $this->params['model']->save()) {
             if (!$model->initializeData(true)) {
                 $model->delete();
                 Yii::$app->response->error = 'Sensor provider could not be created!';
                 Yii::$app->response->refresh = true;
                 return;
             } else {
                 Yii::$app->response->success = 'Sensor provider \'' . $model->dataObject->object->name . '\' created!';
                 Yii::$app->response->refresh = true;
                 return;
             }
         }
     }
     Yii::$app->response->view = 'create';
     Yii::$app->response->task = 'dialog';
     Yii::$app->response->labels['submit'] = 'Update';
     Yii::$app->response->taskOptions = ['title' => 'Update Sensor Provider', 'width' => '800px'];
 }