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"); } }
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"); } }
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']; }