def saveEndereco():
    if request.method == 'POST':
        content = request.json
        if isNullOrEmpty(content["id"]):
            db.cadastrarEndereco(content["rua"], content["numero"],
                                 content["cep"], content["pessoaId"])
        else:
            print("Endereco atualizado")
            db.atualizaEndereco(content["id"], content["rua"],
                                content["numero"], content["cep"],
                                content["pessoaId"])
        return "endereco salvo", 200
def salvarTelefone():
    if request.method == 'POST':
        content = request.json
        if isNullOrEmpty(content["id"]):
            print("cadastrado novo")
            db.inserirTelefone(content["numero"], content["pessoaId"])
        else:
            print("telefone atualizado")
            db.atualizaTelefone(content["id"], content["numero"],
                                content["pessoaId"])

        return "telefone salvo", 200
def edit():
    if request.method == 'GET':
        return "ECHO: GET\n"

    elif request.method == 'POST':
        content = request.json
        if isNullOrEmpty(content["id"]):
            pessoaId = db.insertPessoa(content["nome"], content["email"])
            json = {"id": pessoaId}
            return jsonify(json), 200
        else:
            db.atualizaPessoa(content["id"], content["nome"], content["email"])
            print("pessoa atualizada")

        return "pessoa salva com sucesso", 200
def list():
    if request.method == 'GET':
        lista = db.listarContatos()
        array = []
        for x in lista:
            array.append({"id": x.id, "nome": x.nome, "email": x.email})
        return jsonify(array), 200
def getListPhoneByUserId(pessoaId=None):
    if request.method == 'GET':
        telefones = db.pesquisaTelefonePorPessaId(pessoaId)
        array = []
        for x in telefones:
            array.append({"id": x.id, "numero": x.numero})
        return jsonify(array), 200
def getListAddressByUserId(pessoaId=None):
    if request.method == 'GET':
        telefones = db.pesquisaEnderecoPorPessaId(pessoaId)
        array = []
        for x in telefones:
            array.append({
                "id": x.id,
                "numero": x.numero,
                "rua": x.rua,
                "cep": x.cep
            })
        return jsonify(array), 200
def buscaPessoaPorId(id=None):
    if request.method == 'GET':
        pessoa = db.buscaPessoaPorId(id)
        json = {"id": pessoa.id, "nome": pessoa.nome, "email": pessoa.email}
        return jsonify(json), 200
def deletePessoa():
    content = request.json
    if request.method == 'POST':
        db.excluirPessoa(content["id"])
        return "Pessoa excluida com sucesso", 200
def deleteTelefone():
    if request.method == 'POST':
        content = request.json
        db.excluirTelefone(content["pessoaId"], content["telefoneId"])
        return "telefone excluido com sucesso", 200
def deleteEndereco():
    if request.method == 'POST':
        content = request.json
        db.excluirEndereco(content["pessoaId"], content["enderecoId"])
        return "endereco excluido com sucesso", 200