45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import falcon
|
|
from beaker.middleware import SessionMiddleware
|
|
|
|
from middleware import AuthMiddleware, JSONTranslator, static, handle_404
|
|
from models.db import StorageEngine
|
|
from controllers.main import AppLogin, AppLogout, AppMain, AppPartners
|
|
from controllers.helper import AppPostalCode
|
|
from settings import DEBUG, WITH_LOGIN
|
|
|
|
|
|
db = StorageEngine()
|
|
pc = AppPostalCode()
|
|
login = AppLogin(db)
|
|
logout = AppLogout(db)
|
|
main = AppMain(db)
|
|
partners = AppPartners(db)
|
|
|
|
api = falcon.API(middleware=[AuthMiddleware(), JSONTranslator()])
|
|
api.req_options.auto_parse_form_urlencoded = True
|
|
api.add_sink(handle_404, '')
|
|
if WITH_LOGIN:
|
|
api.add_route('/', login)
|
|
api.add_route('/logout', logout)
|
|
api.add_route('/main', main)
|
|
api.add_route('/partners', partners)
|
|
api.add_route('/pc', pc)
|
|
|
|
|
|
if DEBUG:
|
|
api.add_sink(static, '/static')
|
|
|
|
|
|
session_opts = {
|
|
'session.type': 'file',
|
|
'session.cookie_expires': True,
|
|
'session.data_dir': '/tmp/cache/data',
|
|
'session.lock_dir': '/tmp/cache/lock',
|
|
#~ 'session.httponly': True,
|
|
#~ 'session.secure': True,
|
|
}
|
|
app = SessionMiddleware(api, session_opts)
|
|
|