Exemplo n.º 1
0
def record_link_factory(pid):
    """Record link creation."""
    links = default_links_factory(pid=pid)
    _, record = record_resolver.resolve(pid_value=pid.pid_value)
    _fill_video_extra_links(record=record, links=links)

    return links
Exemplo n.º 2
0
def links_factory(pid):
    """Record links factory with files."""
    links = default_links_factory(pid)

    bucket_link = default_bucket_link_factory(pid)
    if bucket_link is not None:
        links['bucket'] = bucket_link
    return links
Exemplo n.º 3
0
def links_factory(pid):
    """Record links factory with files."""
    links = default_links_factory(pid)

    bucket_link = default_bucket_link_factory(pid)
    if bucket_link is not None:
        links['bucket'] = bucket_link
    return links
Exemplo n.º 4
0
def links_factory(pid, **kwargs):
    """Links factory for InvenioRDM records.

    For now, just adds 'files' link
    """
    links = default_links_factory(pid)
    links['files'] = url_for('invenio_records_files.recid_bucket_api',
                             pid_value=pid.pid_value,
                             _external=True)
    return links
Exemplo n.º 5
0
def deposit_links_factory(pid):
    """Factory for record links generation."""
    links = default_links_factory(pid)

    def _url(name, **kwargs):
        """URL builder."""
        endpoint = ".{0}_{1}".format(pid.pid_type, name)
        return url_for(endpoint, pid_value=pid.pid_value, _external=True, **kwargs)

    links["files"] = _url("files")
    for action in ("publish", "edit", "discard"):
        links[action] = _url("actions", action=action)
    return links
Exemplo n.º 6
0
def deposit_links_factory(pid):
    """Factory for record links generation."""
    links = default_links_factory(pid)

    def _url(name, **kwargs):
        """URL builder."""
        endpoint = '.{0}_{1}'.format(pid.pid_type, name)
        return url_for(endpoint, pid_value=pid.pid_value, _external=True,
                       **kwargs)

    links['files'] = _url('files')
    for action in ('publish', 'edit', 'discard'):
        links[action] = _url('actions', action=action)
    return links
Exemplo n.º 7
0
def deposit_links_factory(pid):
    """Factory for record links generation.

    The dictionary is formed as:

    .. code-block:: python

        {
            'files': '/url/to/files',
            'publish': '/url/to/publish',
            'edit': '/url/to/edit',
            'discard': '/url/to/discard',
            ...
        }

    :param pid: The record PID object.
    :returns: A dictionary that contains all the links.
    """
    links = default_links_factory(pid)

    def _url(name, **kwargs):
        """URL builder."""
        endpoint = '.{0}_{1}'.format(
            current_records_rest.default_endpoint_prefixes[pid.pid_type],
            name,
        )
        return url_for(endpoint,
                       pid_value=pid.pid_value,
                       _external=True,
                       **kwargs)

    links['files'] = _url('files')

    ui_endpoint = current_app.config.get('DEPOSIT_UI_ENDPOINT')
    if ui_endpoint is not None:
        links['html'] = ui_endpoint.format(
            host=request.host,
            scheme=request.scheme,
            pid_value=pid.pid_value,
        )

    deposit_cls = Deposit
    if 'pid_value' in request.view_args:
        deposit_cls = request.view_args['pid_value'].data[1].__class__

    for action in extract_actions_from_class(deposit_cls):
        links[action] = _url('actions', action=action)
    return links
Exemplo n.º 8
0
def deposit_links_factory(pid):
    """Factory for record links generation.

    The dictionary is formed as:

    .. code-block:: python

        {
            'files': '/url/to/files',
            'publish': '/url/to/publish',
            'edit': '/url/to/edit',
            'discard': '/url/to/discard',
            ...
        }

    :param pid: The record PID object.
    :returns: A dictionary that contains all the links.
    """
    links = default_links_factory(pid)

    def _url(name, **kwargs):
        """URL builder."""
        endpoint = '.{0}_{1}'.format(pid.pid_type, name)
        return url_for(endpoint, pid_value=pid.pid_value, _external=True,
                       **kwargs)

    links['files'] = _url('files')

    ui_endpoint = current_app.config.get('DEPOSIT_UI_ENDPOINT')
    if ui_endpoint is not None:
        links['html'] = ui_endpoint.format(
            host=request.host,
            scheme=request.scheme,
            pid_value=pid.pid_value,
        )

    for action in ('publish', 'edit', 'discard'):
        links[action] = _url('actions', action=action)
    return links