-
Saket Agrahari authoredSaket Agrahari authored
default.py 1.33 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("/")
def index():
return render_template('../static/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)