# -*- coding: utf-8 -*-
#
# This file is part of Invenio.
# Copyright (C) 2015-2018 CERN.
#
# Invenio is free software; you can redistribute it and/or modify it
# under the terms of the MIT License; see LICENSE file for more details.

"""JSON resolver for JSON schemas."""

from __future__ import absolute_import, print_function

import jsonresolver
from werkzeug.routing import Rule


@jsonresolver.hookimpl
def jsonresolver_loader(url_map):
    """JSON resolver plugin that loads the schema endpoint.

    Injected into Invenio-Records JSON resolver.
    """
    from flask import current_app

    from . import current_jsonschemas

    url_map.add(
        Rule(
            "{0}/<path:path>".format(current_app.config["JSONSCHEMAS_ENDPOINT"]),
            endpoint=current_jsonschemas.get_schema,
            host=current_app.config["JSONSCHEMAS_HOST"],
        )
    )
