def api_v1_adicionar_alocacoes(id_escala):
    '''Este método adiciona um conjunto de alocações a determinada escala.
    Note-se que o id da escala é passado na URL.
    Ele espera, como request, um JSON no seguinte formato:

    {
        "1":{
            "id_usuario" = <int> matricula,
            "id_ponto_fiscalizacao" = <int> id_ponto,
            "dia": <int> dia_da_semana
            },
        "2":{
            "id_usuario" = <int> matricula,
            "id_ponto_fiscalizacao" = <int> id_ponto,
            "dia": <int> dia_da_semana
            }
    }
    '''

    sucesso = True
    for key in request.json:
        query = "INSERT INTO tb_alocacao (id_usuario, id_ponto_fiscalizacao, dia, id_escala) VALUES (%s, %s, %s, %s);"
        usuario = int(request.json[key]['id_usuario'])
        ponto_fiscalizacao = int(request.json[key]['id_ponto_fiscalizacao'])
        dia = int(request.json[key]['dia'])
        escala = id_escala
        argumentos = (usuario, ponto_fiscalizacao, dia, escala)
        if not bd.insere(query, argumentos):
            sucesso = False
    if sucesso:
        return util.resposta_sucesso("Operação realizada com sucesso")
    abort(500)
def api_v1_set_turno(id):
    query = "UPDATE tb_escala SET turno = %s WHERE id = %s;"
    turno = int(request.json['value'])
    if bd.atualiza(query, (turno, id)):
        return util.resposta_sucesso("Alterações realizadas com sucesso")
    else:
        abort(500)
def api_v1_remover_escala(id):
    if __remover_todas_alocacoes(id):
        query = "DELETE FROM tb_escala WHERE id = %s;"
        if bd.remove(query, (id, )):
            return util.resposta_sucesso("Escala removida com sucesso!")
        else:
            abort(500)
    else:
        abort(500)
def api_v1_criar_escala():
    query = "INSERT INTO tb_escala (mes, ano, turno, status) VALUES (%s, %s, %s, %s);"
    mes = int(request.json['mes'])
    ano = int(request.json['ano'])
    turno = int(request.json['turno'])
    status = 1  #1: Não-aprovado
    argumentos = (mes, ano, turno, status)
    if bd.insere(query, argumentos):
        return util.resposta_sucesso("Escala criada com sucesso!")
    else:
        abort(500)
def api_v1_criar_usuario():
    query = "INSERT INTO tb_usuario (matricula, nome, senha, funcao) VALUES (%s, %s, %s, %s);"
    matricula = int(request.json['matricula'])
    nome = request.json.get("nome", "")
    senha = request.json.get("senha", "")
    funcao = int(request.json['funcao'])
    argumentos = (matricula, nome, senha, funcao)
    if bd.insere(query, argumentos):
        return util.resposta_sucesso("Usuario criado com sucesso")
    else:
        abort(404)
def api_v1_remover_alocacao(id):
    query = "DELETE FROM tb_alocacao WHERE id = %s;"
    if bd.remove(query, (id, )):
        return util.resposta_sucesso("Alocação removida com sucesso!")
    else:
        abort(500)