Skip to content
Snippets Groups Projects
Select Git revision
  • ce318da01bd374770d88ba6477a007f5d240b115
  • develop default
  • master protected
  • feature/DBOARD3-1156-move-whois/nren-naming-to-inventory-update
  • inventoryProvider-functional
  • inventoryProvider-morework2
  • circuit-service-details-fix
  • lookup-SPECTRUM-SCHF-ports
  • inventoryProvider-1267-cleanup
  • inventoryProvider-moreWork
  • feature/DBOARD3-958
  • release/0.110
  • fix-uuid-validation-error
  • docker-poc
  • 0.154
  • 0.153
  • 0.152
  • 0.151
  • 0.150
  • 0.149
  • 0.148
  • 0.147
  • 0.146
  • 0.145
  • 0.144
  • 0.143
  • 0.142
  • 0.141
  • 0.140
  • 0.139
  • 0.138
  • 0.137
  • 0.136
  • 0.135
34 results

setup.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)