from wqflask import app
from utility.tools import WEBSERVER_MODE, show_settings, get_setting_int, get_setting, get_setting_bool

import utility.logger
logger = utility.logger.getLogger(__name__)

BLUE = '\033[94m'
GREEN = '\033[92m'
BOLD = '\033[1m'
ENDC = '\033[0m'


def app_config():
    app.config['SESSION_TYPE'] = 'filesystem'
    if not app.config.get('SECRET_KEY'):
        import os
        app.config['SECRET_KEY'] = str(os.urandom(24))

    mode = WEBSERVER_MODE
    if mode == "DEV" or mode == "DEBUG":
        app.config['TEMPLATES_AUTO_RELOAD'] = True
        # if mode == "DEBUG":
        #     app.config['EXPLAIN_TEMPLATE_LOADING'] = True <--- use overriding app param instead
    print("==========================================")
    show_settings()

    port = get_setting_int("SERVER_PORT")

    if get_setting_bool("USE_GN_SERVER"):
        print(
            ("GN2 API server URL is [" + BLUE + get_setting("GN_SERVER_URL") + ENDC + "]"))
        import requests
        page = requests.get(get_setting("GN_SERVER_URL"))
        if page.status_code != 200:
            raise Exception("API server not found!")

    # import utility.elasticsearch_tools as es
    # es.test_elasticsearch_connection()

    print(("GN2 is running. Visit %s[http://localhost:%s/%s](%s)" %
           (BLUE, str(port), ENDC, get_setting("WEBSERVER_URL"))))