def package_update_rest(context, data_dict): model = context['model'] id = data_dict.get("id") request_id = context['id'] pkg = model.Package.get(request_id) if not pkg: raise NotFound if id and id != pkg.id: pkg_from_data = model.Package.get(id) if pkg_from_data != pkg: error_dict = {id:('Cannot change value of key from %s to %s. ' 'This key is read-only') % (pkg.id, id)} raise ValidationError(error_dict) context["package"] = pkg context["allow_partial_update"] = False dictized_package = model_save.package_api_to_dict(data_dict, context) _check_access('package_update_rest', context, dictized_package) dictized_after = _get_action('package_update')(context, dictized_package) pkg = context['package'] package_dict = model_dictize.package_to_api(pkg, context) return package_dict
def package_update_rest(context, data_dict): model = context['model'] id = data_dict.get("id") request_id = context['id'] pkg = model.Package.get(request_id) if not pkg: raise NotFound if id and id != pkg.id: pkg_from_data = model.Package.get(id) if pkg_from_data != pkg: error_dict = {id:('Cannot change value of key from %s to %s. ' 'This key is read-only') % (pkg.id, id)} raise ValidationError(error_dict) context["package"] = pkg context["allow_partial_update"] = False dictized_package = model_save.package_api_to_dict(data_dict, context) check_access('package_update_rest', context, dictized_package) dictized_after = get_action('package_update')(context, dictized_package) pkg = context['package'] package_dict = model_dictize.package_to_api(pkg, context) return package_dict
def package_update_rest(context, data_dict): model = context["model"] id = data_dict.get("id") request_id = context["id"] api = context.get("api_version") or "1" pkg = model.Package.get(request_id) if not pkg: raise NotFound if id and id != pkg.id: pkg_from_data = model.Package.get(id) if pkg_from_data != pkg: error_dict = {id: ("Cannot change value of key from %s to %s. " "This key is read-only") % (pkg.id, id)} raise ValidationError(error_dict) context["package"] = pkg context["allow_partial_update"] = True dictized_package = package_api_to_dict(data_dict, context) check_access("package_update_rest", context, dictized_package) dictized_after = package_update(context, dictized_package) pkg = context["package"] if api == "1": package_dict = package_to_api1(pkg, context) else: package_dict = package_to_api2(pkg, context) return package_dict
def package_update_rest(context, data_dict): model = context['model'] id = data_dict.get("id") request_id = context['id'] api = context.get('api_version') or '1' pkg = model.Package.get(request_id) if not pkg: raise NotFound if id and id != pkg.id: pkg_from_data = model.Package.get(id) if pkg_from_data != pkg: error_dict = { id: ('Cannot change value of key from %s to %s. ' 'This key is read-only') % (pkg.id, id) } raise ValidationError(error_dict) context["package"] = pkg context["allow_partial_update"] = True dictized_package = package_api_to_dict(data_dict, context) dictized_after = package_update(context, dictized_package) pkg = context['package'] if api == '1': package_dict = package_to_api1(pkg, context) else: package_dict = package_to_api2(pkg, context) return package_dict
def package_update_rest(context, data_dict): model = context['model'] id = data_dict.get("id") request_id = context['id'] api = context.get('api_version') or '1' pkg = model.Package.get(request_id) if not pkg: raise NotFound if id and id != pkg.id: pkg_from_data = model.Package.get(id) if pkg_from_data != pkg: error_dict = {id:('Cannot change value of key from %s to %s. ' 'This key is read-only') % (pkg.id, id)} raise ValidationError(error_dict) context["package"] = pkg context["allow_partial_update"] = True dictized_package = package_api_to_dict(data_dict, context) dictized_after = package_update(context, dictized_package) pkg = context['package'] if api == '1': package_dict = package_to_api1(pkg, context) else: package_dict = package_to_api2(pkg, context) return package_dict
def package_create_rest(context, data_dict): _check_access('package_create_rest', context, data_dict) dictized_package = model_save.package_api_to_dict(data_dict, context) dictized_after = _get_action('package_create')(context, dictized_package) pkg = context['package'] package_dict = model_dictize.package_to_api(pkg, context) data_dict['id'] = pkg.id return package_dict
def package_create_rest(context, data_dict): _check_access("package_create_rest", context, data_dict) dictized_package = model_save.package_api_to_dict(data_dict, context) dictized_after = _get_action("package_create")(context, dictized_package) pkg = context["package"] package_dict = model_dictize.package_to_api(pkg, context) data_dict["id"] = pkg.id return package_dict
def package_create_rest(context, data_dict): api = context.get('api_version') or '1' dictized_package = package_api_to_dict(data_dict, context) dictized_after = package_create(context, dictized_package) pkg = context['package'] if api == '1': package_dict = package_to_api1(pkg, context) else: package_dict = package_to_api2(pkg, context) data_dict['id'] = pkg.id return package_dict
def package_create_rest(context, data_dict): api = context.get('api_version') or '1' check_access('package_create_rest', context, data_dict) dictized_package = model_save.package_api_to_dict(data_dict, context) dictized_after = get_action('package_create')(context, dictized_package) pkg = context['package'] if api == '1': package_dict = model_dictize.package_to_api1(pkg, context) else: package_dict = model_dictize.package_to_api2(pkg, context) data_dict['id'] = pkg.id return package_dict
def test_15_api_to_dictize(self): context = {"model": model, 'api_version': 1, "session": model.Session} api_data = { 'name' : u'testpkg', 'title': u'Some Title', 'url': u'http://blahblahblah.mydomain', 'resources': [ { u'url':u'http://blah.com/file2.xml', u'format':u'xml', u'description':u'Second file', u'hash':u'def123', u'alt_url':u'alt_url', u'size':u'200', }, { u'url':u'http://blah.com/file.xml', u'format':u'xml', u'description':u'Main file', u'hash':u'abc123', u'alt_url':u'alt_url', u'size':u'200', }, ], 'tags': u'russion novel', 'license_id': u'gpl-3.0', 'extras': { 'genre' : u'horror', 'media' : u'dvd', }, } dictized = package_api_to_dict(api_data, context) assert dictized == {'extras': [{'key': 'genre', 'value': u'horror'}, {'key': 'media', 'value': u'dvd'}], 'license_id': u'gpl-3.0', 'name': u'testpkg', 'resources': [{u'alt_url': u'alt_url', u'description': u'Second file', u'size': u'200', u'format': u'xml', u'hash': u'def123', u'url': u'http://blah.com/file2.xml'}, {u'alt_url': u'alt_url', u'description': u'Main file', u'size': u'200', u'format': u'xml', u'hash': u'abc123', u'url': u'http://blah.com/file.xml'}], 'tags': [{'name': u'russion'}, {'name': u'novel'}], 'title': u'Some Title', 'url': u'http://blahblahblah.mydomain'} model.repo.new_revision() package_dict_save(dictized, context) model.Session.commit() model.Session.remove() pkg = model.Session.query(model.Package).filter_by(name=u'testpkg').one() package_dictized = self.remove_changable_columns(package_dictize(pkg, context))
def test_15_api_to_dictize(self): context = {"model": model, "api_version": 1, "session": model.Session} api_data = { "name": u"testpkg", "title": u"Some Title", "url": u"http://blahblahblah.mydomain", "resources": [ { u"url": u"http://blah.com/file2.xml", u"format": u"xml", u"description": u"Second file", u"hash": u"def123", u"alt_url": u"alt_url", u"size": u"200", }, { u"url": u"http://blah.com/file.xml", u"format": u"xml", u"description": u"Main file", u"hash": u"abc123", u"alt_url": u"alt_url", u"size": u"200", }, ], "tags": u"russion novel", "license_id": u"gpl-3.0", "extras": {"genre": u"horror", "media": u"dvd"}, } dictized = package_api_to_dict(api_data, context) assert dictized == { "extras": [{"key": "genre", "value": u"horror"}, {"key": "media", "value": u"dvd"}], "license_id": u"gpl-3.0", "name": u"testpkg", "resources": [ { u"alt_url": u"alt_url", u"description": u"Second file", u"size": u"200", u"format": u"xml", u"hash": u"def123", u"url": u"http://blah.com/file2.xml", }, { u"alt_url": u"alt_url", u"description": u"Main file", u"size": u"200", u"format": u"xml", u"hash": u"abc123", u"url": u"http://blah.com/file.xml", }, ], "tags": [{"name": u"russion"}, {"name": u"novel"}], "title": u"Some Title", "url": u"http://blahblahblah.mydomain", } model.repo.new_revision() package_dict_save(dictized, context) model.Session.commit() model.Session.remove() pkg = model.Session.query(model.Package).filter_by(name=u"testpkg").one() package_dictized = self.remove_changable_columns(package_dictize(pkg, context))
def test_15_api_to_dictize(self): context = {"model": model, "api_version": 1, "session": model.Session} api_data = { "name": u"testpkg", "title": u"Some Title", "url": u"http://blahblahblah.mydomain", "resources": [ { u"url": u"http://blah.com/file2.xml", u"format": u"xml", u"description": u"Second file", u"hash": u"def123", u"alt_url": u"alt_url", u"size": u"200", }, { u"url": u"http://blah.com/file.xml", u"format": u"xml", u"description": u"Main file", u"hash": u"abc123", u"alt_url": u"alt_url", u"size": u"200", }, ], "tags": u"russion novel", "license_id": u"gpl-3.0", "extras": { "genre": u"horror", "media": u"dvd" }, } dictized = package_api_to_dict(api_data, context) assert dictized == { "extras": [ { "key": "genre", "value": u"horror" }, { "key": "media", "value": u"dvd" }, ], "license_id": u"gpl-3.0", "name": u"testpkg", "resources": [ { u"alt_url": u"alt_url", u"description": u"Second file", u"size": u"200", u"format": u"xml", u"hash": u"def123", u"url": u"http://blah.com/file2.xml", }, { u"alt_url": u"alt_url", u"description": u"Main file", u"size": u"200", u"format": u"xml", u"hash": u"abc123", u"url": u"http://blah.com/file.xml", }, ], "tags": [{ "name": u"russion" }, { "name": u"novel" }], "title": u"Some Title", "url": u"http://blahblahblah.mydomain", } package_dict_save(dictized, context) model.Session.commit() model.Session.remove() pkg = model.Package.get("testpkg") self.remove_changable_columns(package_dictize(pkg, context))