summaryrefslogtreecommitdiff
path: root/archivist/server/__init__.py
blob: 913cff3f7604ba5f30ca055c22e46b58ece232a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from importlib import import_module

from flask.cli import FlaskGroup, ScriptInfo
from flask import Flask
from flask_restplus import Api, Resource, fields

from ..model import db

app = Flask('archivist')
api = Api(version='0.1', title='Archivist API',
        description='API for the Archivist Document System')

NAMESPACES=(
    'tag',
    'prefix',
)

@app.before_request
def before_request():
    db.connect()

@app.after_request
def after_request(response):
    db.close()
    return response

def create_app(info):
    for ns in NAMESPACES:
        mod = import_module('.' + ns, __name__)
        api.add_namespace(mod.api)

    api.init_app(app)

    return app

server_group = FlaskGroup(
        name='server',
        context_settings = {'obj' : ScriptInfo(create_app=create_app)})