import service as main
from service import *
import config
import admin
from models import UserEncoder
import providers


__author__ = 'hanl'

if __name__ == '__main__':
    # for deployment secure copy
    # scp -r * support@korap3:/home/support/service

    app.config.from_object(config)
    app.json_encoder = UserEncoder
    app.debug = config.DEBUG
    app.register_blueprint(user.router, url_prefix='/user')
    app.register_blueprint(admin.router, url_prefix='/admin')
    providers.init_app(app.config)
    app.run()