#!/usr/bin/env python

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


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()
    return p


if __name__ == '__main__':
    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')

    app.run(port=5100)
