Skip to content
Snippets Groups Projects
Select Git revision
  • 6618120ec99e90b9d62aa85023f469029a67c69e
  • develop default
  • master protected
  • feature/frontend-tests
  • 0.99
  • 0.98
  • 0.97
  • 0.96
  • 0.95
  • 0.94
  • 0.93
  • 0.92
  • 0.91
  • 0.90
  • 0.89
  • 0.88
  • 0.87
  • 0.86
  • 0.85
  • 0.84
  • 0.83
  • 0.82
  • 0.81
  • 0.80
24 results

default.py

Blame
  • default.py 1.49 KiB
    """
    Default Endpoints
    =========================
    
    .. contents:: :local:
    
    /version
    ---------------------
    
    .. autofunction:: compendium_v2.routes.default.version
    
    """
    import pkg_resources
    from flask import Blueprint, jsonify, render_template
    
    from compendium_v2.routes import common
    
    routes = Blueprint('compendium-v2-default', __name__)
    API_VERSION = '0.1'
    
    VERSION_SCHEMA = {
        '$schema': 'http://json-schema.org/draft-07/schema#',
    
        'type': 'object',
        'properties': {
            'api': {
                'type': 'string',
                'pattern': r'\d+\.\d+'
            },
            'module': {
                'type': 'string',
                'pattern': r'\d+\.\d+'
            }
        },
        'required': ['api', 'module'],
        'additionalProperties': False
    }
    
    
    @routes.after_request
    def after_request(resp):
        return common.after_request(resp)
    
    
    @routes.route('/', defaults={'path': ''}, methods=['GET'])
    @routes.route('/<path:path>', methods=['GET'])
    def index(path):
        # https://flask.palletsprojects.com/en/2.0.x/patterns/singlepageapplications/
        return render_template('index.html')
    
    
    @routes.route('/version', methods=['GET', 'POST'])
    @common.require_accepts_json
    def version():
        """
        handler for /version requests
    
        response will be formatted as:
    
        .. asjson::
            compendium_v2.routes.default.VERSION_SCHEMA
    
        :return:
        """
        version_params = {
            'api': API_VERSION,
            'module':
                pkg_resources.get_distribution('compendium-v2').version
        }
        return jsonify(version_params)