def check_spatial_extra(self, package): for extra in package.extras_list: if extra.key == "spatial": if extra.state == "active": try: log.debug("Received: %r" % extra.value) geometry = json.loads(extra.value) except ValueError, e: error_dict = {"spatial": [u"Error decoding JSON object: %s" % str(e)]} raise ValidationError(error_dict, error_summary=package_error_summary(error_dict)) except TypeError, e: error_dict = {"spatial": [u"Error decoding JSON object: %s" % str(e)]} raise ValidationError(error_dict, error_summary=package_error_summary(error_dict)) try: save_package_extent(package.id, geometry) except ValueError, e: error_dict = {"spatial": [u"Error creating geometry: %s" % str(e)]} raise ValidationError(error_dict, error_summary=package_error_summary(error_dict)) except Exception, e: error_dict = {"spatial": [u"Error: %s" % str(e)]} raise ValidationError(error_dict, error_summary=package_error_summary(error_dict))
def package_create_validate(context, data_dict): model = context['model'] user = context['user'] schema = context.get('schema') or default_create_package_schema() model.Session.remove() model.Session()._context = context check_access('package_create', context, data_dict) data, errors = validate(data_dict, schema, context) if errors: model.Session.rollback() raise ValidationError(errors, package_error_summary(errors)) else: return data
def package_create_validate(context, data_dict): model = context['model'] user = context['user'] schema = context.get('schema') or default_create_package_schema() model.Session.remove() model.Session()._context = context check_access('package_create',context,data_dict) data, errors = validate(data_dict, schema, context) if errors: model.Session.rollback() raise ValidationError(errors, package_error_summary(errors)) else: return data
def package_create(context, data_dict): model = context['model'] user = context['user'] preview = context.get('preview', False) schema = context.get('schema') or default_create_package_schema() model.Session.remove() model.Session()._context = context check_access(model.System(), model.Action.PACKAGE_CREATE, context) check_group_auth(context, data_dict) data, errors = validate(data_dict, schema, context) if errors: model.Session.rollback() raise ValidationError(errors, package_error_summary(errors)) if not preview: rev = model.repo.new_revision() rev.author = user if 'message' in context: rev.message = context['message'] else: rev.message = _(u'REST API: Create object %s') % data.get("name") pkg = package_dict_save(data, context) admins = [] if user: admins = [model.User.by_name(user.decode('utf8'))] if not preview: model.setup_default_user_roles(pkg, admins) for item in PluginImplementations(IPackageController): item.create(pkg) model.repo.commit() ## need to let rest api create and preview context["package"] = pkg ## this is added so that the rest controller can make a new location context["id"] = pkg.id log.debug('Created object %s' % str(pkg.name)) if not preview: return package_dictize(pkg, context) else: return data
def package_create_validate(context, data_dict): model = context['model'] user = context['user'] preview = context.get('preview', False) schema = context.get('schema') or default_create_package_schema() model.Session.remove() model.Session()._context = context check_access(model.System(), model.Action.PACKAGE_CREATE, context) check_group_auth(context, data_dict) data, errors = validate(data_dict, schema, context) if errors: model.Session.rollback() raise ValidationError(errors, package_error_summary(errors)) else: return data
def vocabulary_create(context, data_dict): model = context['model'] schema = context.get('schema') or default_create_vocabulary_schema() model.Session.remove() model.Session()._context = context check_access('vocabulary_create', context, data_dict) data, errors = validate(data_dict, schema, context) if errors: model.Session.rollback() raise ValidationError(errors, package_error_summary(errors)) vocabulary = vocabulary_dict_save(data, context) if not context.get('defer_commit'): model.repo.commit() log.debug('Created Vocabulary %s' % str(vocabulary.name)) return vocabulary_dictize(vocabulary, context)