__init__.py 2.27 KB
Newer Older
wanli's avatar
wanli committed
1 2 3
'''
Author: your name
Date: 2021-04-14 14:12:18
wanli's avatar
wanli committed
4
LastEditTime: 2021-07-03 11:43:10
wanli's avatar
wanli committed
5 6 7 8
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \evm-store\backend\view\__init__.py
'''
wanli's avatar
wanli committed
9 10 11 12 13 14 15 16 17 18 19 20 21
#!/usr/bin/env python
# -*- coding: utf_8 -*-

import logging
import traceback
from flask import Flask, Response, jsonify
from flask_cors import CORS
from werkzeug.exceptions import HTTPException, InternalServerError
from .api import api
from .files import file_api
from .login import login_api
from .user import user_api
from .apps import apps_api
wanli's avatar
wanli committed
22
from .device import device_api
wanli's avatar
wanli committed
23
from .download import download_api
wanli's avatar
wanli committed
24
from .app_logs import appLogs_api
wanli's avatar
wanli committed
25 26
from model import fullStackDB
from fullstack.response import ResponseCode, response_result
27
from app import config
wanli's avatar
wanli committed
28

wanli's avatar
wanli committed
29
logger = logging.getLogger(__name__)
wanli's avatar
wanli committed
30 31 32 33 34 35

class JsonResponse(Response):
    @classmethod
    def force_type(cls, response, environ=None):
        if isinstance(response, (list, dict)):
            response = jsonify(response)
wanli's avatar
wanli committed
36
        return super(cls, Response).force_type(response, environ)
wanli's avatar
wanli committed
37 38 39 40 41 42 43 44 45 46 47 48 49 50

class FlaskAPP(Flask):
    response_class = JsonResponse

    def unauthorized(self, message):
        return response_result(ResponseCode.AUTHORIZATION_ERROR, msg=message)

def create_app():
    app = FlaskAPP(__name__)
    app.register_blueprint(api)
    app.register_blueprint(login_api)
    app.register_blueprint(file_api)
    app.register_blueprint(user_api)
    app.register_blueprint(apps_api)
wanli's avatar
wanli committed
51
    app.register_blueprint(download_api)
wanli's avatar
wanli committed
52
    app.register_blueprint(device_api)
wanli's avatar
wanli committed
53
    app.register_blueprint(appLogs_api)
wanli's avatar
wanli committed
54 55 56 57 58 59 60

    @app.errorhandler(InternalServerError)
    def handle_500(e):
        logger.error(str(e))
        traceback.print_exc()
        return response_result(ResponseCode.SERVER_ERROR, msg=str(e))

wanli's avatar
wanli committed
61 62 63 64 65 66
    @app.errorhandler(HTTPException)
    def handle_http_exception(e):
        logger.error(str(e))
        traceback.print_exc()
        return response_result(ResponseCode.SERVER_ERROR, msg=str(e))

wanli's avatar
wanli committed
67 68 69 70 71 72 73 74 75 76 77 78 79
    @app.errorhandler(Exception)
    def handle_exception(e):
        logger.error(str(e))
        traceback.print_exc()
        return response_result(ResponseCode.SERVER_ERROR, msg=str(e))

    CORS(app, supports_credentials=True, origins='*')
    app.config.update(config)
    fullStackDB(app, drop_tables=[])

    return app

app = create_app()