from flask import Flask
from flask_swagger_ui import get_swaggerui_blueprint

from decouple import config as config_environment

from src import api_institutions
from src import api_company as api_company
from flask_cors import CORS, cross_origin

app = Flask(__name__)
CORS(app,
    resources={r'/*': { 'origins': '*'}},
    supports_credentials=True,
    methods=['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS']
    )

if config_environment('ENVIRONMENTS') == "desarrollo":
    # swagger configs
    SWAGGER_URL = '/swagger'
    API_URL = '/static/swagger.json'
else:
    SWAGGER_URL = '/'
    API_URL = ''

SWAGGER_BLUEPRINT = get_swaggerui_blueprint(
    SWAGGER_URL,
    API_URL,
    config={
        'app_name' : "Todo Lista Endpoints"
    }
)

app.register_blueprint(SWAGGER_BLUEPRINT, url_prefix = SWAGGER_URL)
def init_app(config):
    app.config.from_object(config)

    # recuperautos instituciones
    app.register_blueprint(api_institutions.main_login, url_prefix='/login')
    app.register_blueprint(api_institutions.main_create_user, url_prefix='/create-user')
    app.register_blueprint(api_institutions.main_get_comunas_aledanas, url_prefix='/get-comunas-aledanas')
    app.register_blueprint(api_institutions.main_create_comunas_aledanas, url_prefix='/create-comunas-aledanas')
    app.register_blueprint(api_institutions.main_reporte_puntos, url_prefix='/reporte-puntos')
    app.register_blueprint(api_institutions.main_load_info_vehicle, url_prefix='/load-info-vehicle')
    app.register_blueprint(api_institutions.main_bulk_pload_reports, url_prefix='/bulk-pload-reports')

    # recuperautos empresas
    app.register_blueprint(api_company.main_company_vehicle_report, url_prefix='/company-vehicle-report')

    return app