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 actionCreate() { $providerMap = []; $providerMap['pull'] = PullProviderInstance::class; $providerMap['push'] = PushProviderInstance::class; if (empty($_GET['type']) || !isset($providerMap[$_GET['type']])) { throw new NotFoundHttpException("Provider type not found"); } $providerClass = $providerMap[$_GET['type']]; $this->params['model'] = $model = new Provider(); $this->params['scenario'] = $scenario = 'create'; $this->params['instance'] = $this->params['model']->dataObject = new $providerClass(); 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'] = 'Create'; Yii::$app->response->taskOptions = ['title' => 'Add Sensor Provider', 'width' => '800px']; }
/** * @return \yii\db\ActiveQuery */ public function getProvider() { return $this->hasOne(Provider::className(), ['id' => 'provider_id']); }
public static function getSensorObjectModelClass(\psesd\sensors\base\BaseInterface $object) { if ($object instanceof SensorInterface) { return SensorModel::className(); } if ($object instanceof ServiceInterface) { return ServiceModel::className(); } if ($object instanceof ServiceReferenceInterface) { return ServiceReferenceModel::className(); } if ($object instanceof ResourceReferenceInterface) { return ResourceReferenceModel::className(); } if ($object instanceof ResourceInterface) { return ResourceModel::className(); } if ($object instanceof SiteInterface) { return SiteModel::className(); } if ($object instanceof ServerInterface) { return ServerModel::className(); } if ($object instanceof ProviderInterface) { return ProviderModel::className(); } return false; }