import sys
if __name__ != "__main__":
    sys.exit()

import config
from ServerController import ServerController
from flask import Flask

config.printDebug('Inicializando servidor...')

# Ler parametros
# python ./server.py port Netfile Ixfile Netixlanfile
# python ./server.py 2000 ./data/net.json ./data/ix.json ./data/netixlan.json
# [port] é o porto no qual o servidor receberá mensagens
# [Netfile] é o caminho do arquivo de redes
# [Ixfile] é o caminho do arquivo de IXPs
# [Netixlanfile] é o caminho do arquivo de associações

port = int(sys.argv[1])
Netfile = str(sys.argv[2])
Ixfile = str(sys.argv[3])
Netixlanfile = str(sys.argv[4])

# Criar servidor
controller = ServerController(Ixfile, Netfile, Netixlanfile)
app = Flask(__name__)

@app.route(config.REQ_IXP_NETS + '/<int:ixpId>', methods=['GET'])
def getIxpNets(ixpId: int):
    return { 'data': controller.getIxpNets(ixpId) }

@app.route(config.REQ_NET_NAME + '/<int:netId>', methods=['GET'])
def getNetworkName(netId: int):
    return { 'data': controller.getNetworkName(netId) }

@app.route(config.REQ_IXPS, methods=['GET'])
def getIxps():
    return { 'data': controller.getIxps() }

# app.run(host=config.IP_ADDR, port=port, debug=config.ENABLE_DEBUG)
app.run(host=config.IP_ADDR, port=port, debug=False, use_reloader=False)
