def export_json_view(pid, record, template=None, **kwargs): r"""Record JSON export view. Serializes record with given format and renders record export template. :param pid: PID object. :param record: Record object. :param template: Template to render. :param \*\*kwargs: Additional view arguments based on URL rule. :return: The rendered template. """ formats = current_app.config.get('RECORDS_UI_EXPORT_FORMATS', {}).get( pid.pid_type) fmt = formats.get(request.view_args.get('format')) if fmt is False: # If value is set to False, it means it was deprecated. abort(410) elif fmt is None: abort(404) else: try: serializer = obj_or_import_string(fmt['serializer']) data = serializer.serialize(pid, record) data = json.loads(data) except Exception: data = {} return jsonify(data)
def export_json_view(pid, record, template=None, **kwargs): r"""Record JSON export view. Serializes record with given format and renders record export template. :param pid: PID object. :param record: Record object. :param template: Template to render. :param \*\*kwargs: Additional view arguments based on URL rule. :return: The rendered template. """ formats = current_app.config.get('RECORDS_UI_EXPORT_FORMATS', {}).get(pid.pid_type) fmt = formats.get(request.view_args.get('format')) if fmt is False: # If value is set to False, it means it was deprecated. abort(410) elif fmt is None: abort(404) else: try: serializer = obj_or_import_string(fmt['serializer']) data = serializer.serialize(pid, record) data = json.loads(data) except Exception: data = {} return jsonify(data)
def dumps_oai_etree(pid, records, **kwargs): """Dump records into a etree. :param pid: The :class:`invenio_pidstore.models.PersistentIdentifier` instance. :param records: The :class:`invenio_records.api.Record` instance. :param schema_type: schema type :returns: A LXML Element instance. """ serializer = obj_or_import_string( "weko_schema_ui.serializers.WekoCommonSchema") return serializer.serialize_oaipmh(pid, records, kwargs.get("schema_type"))
def export(pid, record, template=None, **kwargs): r"""Record serialization view. Serializes record with given format and renders record export template. :param pid: PID object. :param record: Record object. :param template: Template to render. :param \*\*kwargs: Additional view arguments based on URL rule. :return: The rendered template. """ formats = current_app.config.get('RECORDS_UI_EXPORT_FORMATS', {}).get(pid.pid_type) schema_type = request.view_args.get('format') fmt = formats.get(schema_type) if fmt is False: # If value is set to False, it means it was deprecated. abort(410) elif fmt is None: abort(404) else: if 'json' not in schema_type and 'bibtex' not in schema_type: record.update({'@export_schema_type': schema_type}) serializer = obj_or_import_string(fmt['serializer']) data = serializer.serialize(pid, record) if isinstance(data, six.binary_type): data = data.decode('utf8') # return render_template( # template, pid=pid, record=record, data=data, # format_title=fmt['title'], # ) response = make_response(data) if 'json' in schema_type or 'bibtex' in schema_type: response.headers['Content-Type'] = 'text/plain' else: response.headers['Content-Type'] = 'text/xml' return response
def test_obj_or_import_string(app): """Test obj_or_import_string.""" assert not obj_or_import_string(value=None) assert myfunc == obj_or_import_string(value=myfunc)