#!/usr/bin/env python

import os
from os import path
import connexion
from encoder import JSONEncoder
from prometheus_flask_exporter import PrometheusMetrics
import logging

main_log= None

def get_property():
    f = open(path.join(os.path.dirname(os.path.realpath(__file__)), '../api.properties'))
    p = {}
    for line in f:
        if not line.startswith("#"):
            data = line.strip().split("=")
            p[data[0].strip()] = data[1].strip()
    f.close()
    return p

def getLogger():
    return main_log


def start_server():
    app = connexion.App(__name__, specification_dir='./swagger/')
    p = get_property()
    metrics = PrometheusMetrics(app.app)
    metrics.info('app_info', 'Application info', version='1.0.3')
    app.app.json_encoder = JSONEncoder
    app.add_api('swagger.yaml', arguments={'title': 'API for Scholix Object', 'host': p['host']},
                base_path='/v1')
    app.add_api('swagger2.yaml', arguments={'title': 'API for Scholix Object Version 2', 'host': p['host']},
                base_path='/v2')
    main_log = logging.getLogger('werkzeug')
    main_log.setLevel(logging.INFO)
    app.app.url_map.strict_slashes = False
    return app
