public static function createDataStorageWithType($type) { if ($type == 'class') { $object = DataModelFactory::createDataObject('RemoteClassStorage'); } else { if ($type == 'meta') { $object = DataModelFactory::createDataObject('RemotePropertyStorage'); } else { if ($type == 'object') { $object = DataModelFactory::createDataObject('RemoteObjectStorage'); } else { if ($type == 'resource') { $object = DataModelFactory::createDataObject('RemoteResourceStorage'); } else { $object = null; } } } } return $object; }
public static function createDataObjectWithType($type) { if ($type == 'class') { $object = DataModelFactory::createDataObject('ClassName'); } else { if ($type == 'meta') { $object = DataModelFactory::createDataObject('Property'); } else { if ($type == 'object') { $object = DataModelFactory::createDataObject('Object'); } else { if ($type == 'resource') { $object = DataModelFactory::createDataObject('Resource'); } else { $object = null; } } } } return $object; }
public function actionCreate() { if (!Parameters::hasParam('type')) { throw new APIException('Invalid resource TYPE (parameter name: \'type\')', APIResponseCode::API_INVALID_METHOD_PARAMS); } $type = Parameters::get('type'); $storage = DataStorageFactory::createStorage($type); if (is_null($storage)) { throw new APIException('Could not create data storage', APIResponseCode::API_INVALID_METHOD_PARAMS); } try { $obj = DataModelFactory::createDataObjectWithType($type); $data = Parameters::getRaw('data', 'post'); $attr = $storage->decodeResponse($data); $obj->setAttributes($attr); $storage->save($obj); } catch (Exception $e) { throw new APIException('Can not save resource object', APIResponseCode::API_SHEMA_CREATE_ERROR); } }
public function actionDelete() { if (!Parameters::hasParam('id')) { throw new APIException('Invalid resource IDENTIFICATOR (parameter name: \'id\')', APIResponseCode::API_INVALID_METHOD_PARAMS); } try { $resource = DataModelFactory::createDataObjectWithType('resource'); $resource->id = Parameters::get('id'); $storage = new YiiResourceDataStorage(); $storage->remove($resource); } catch (Exception $e) { throw new APIException('Can not save resource object', APIResponseCode::API_SHEMA_CREATE_ERROR); } }
public function actionSaveResourceObject() { $attr = $_POST; $type = $attr['type']; $object = DataModelFactory::createDataObjectWithType('resource'); $object->setAttributes($attr); $storage = DataStorageFactory::createDataStorageWithType('resource'); $storage->setType($type); $storage->save($object); $this->redirect(Yii::app()->createUrl('manager/resources', array('resource' => $type))); }