Exemple #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");
     }
 }
 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'];
 }
Exemple #4
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getProvider()
 {
     return $this->hasOne(Provider::className(), ['id' => 'provider_id']);
 }
Exemple #5
0
 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;
 }