Skip to content

Commit

Permalink
CRUD controller (#179)
Browse files Browse the repository at this point in the history
pessoa / curso / sala / área / equipamento

ajuste e padronização  do CRUD para funcionar modulo Web e modulo Desktop
  • Loading branch information
XlouPx authored Dec 9, 2024
1 parent 0825f44 commit c1265d3
Show file tree
Hide file tree
Showing 5 changed files with 250 additions and 83 deletions.
28 changes: 14 additions & 14 deletions App/controller/area.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,20 @@ def listarAreas(search_query: str = '') -> dict:
except Exception as e:
return {"error": f"Erro ao listar áreas: {str(e)}"}

# =================== remover ===================
def removerArea(idArea: int) -> dict:
""" Remove uma área do banco de dados pelo ID. """
try:
result = Area.deletar(idArea)

if result:
return {"success": "Área removida com sucesso."}

return {"error": "Não foi possível remover a área."}

except Exception as e:
return {"error": f"Erro ao remover área: {e}"}

# =================== buscar Id ===================
def buscarAreaId(idArea: int) -> dict:
""" Busca uma área pelo ID e retorna suas informações ou uma mensagem de erro se não for encontrada. """
Expand All @@ -64,17 +78,3 @@ def buscarAreaId(idArea: int) -> dict:

except Exception as e:
return {"error": f"Erro ao buscar área: {e}"}

# =================== remover ===================
def removerArea(idArea: int) -> dict:
""" Remove uma área do banco de dados pelo ID. """
try:
result = Area.deletar(idArea)

if result:
return {"success": "Área removida com sucesso."}

return {"error": "Não foi possível remover a área."}

except Exception as e:
return {"error": f"Erro ao remover área: {e}"}
102 changes: 69 additions & 33 deletions App/controller/curso.py
Original file line number Diff line number Diff line change
@@ -1,46 +1,82 @@
from App.model.curso import Curso
from App.controller.utils import validarInputs

def cadastrarCurso(idArea, dados):
if validarInputs(dados) and idArea:
# =================== cadastrar ===================
def cadastrarCurso(idArea: int, dados: list) -> dict:
"""Cadastra um novo curso associado a uma área no banco de dados."""

# Validação dos dados de entrada
if not validarInputs(dados) or not idArea:
return {"error": "Preencha todos os campos corretamente."}

try:
# Criação do objeto Curso com os dados fornecidos
cursoModel = Curso(dados[1], dados[2], dados[3], dados[4], dados[5], dados[6])

# Cadastro do curso no banco de dados
if cursoModel.cadastrar_curso(idArea):
return True
print('Preencha todos os campos')
return False
return {"success": "Curso cadastrado com sucesso."}

return {"error": "Não foi possível cadastrar o curso."}

except Exception as e:
return {"error": f"Erro ao cadastrar curso: {e}"}

def listarCursos():
todosCursos = Curso.retorna_nomeId_cursos()
listaCursos = {i[1]:i[0] for i in todosCursos}
return listaCursos
# =================== listar ===================
def listarCursos(search_query: str = '') -> dict:
""" Retorna um dicionário com todos os cursos cadastrados, usando o nome como chave e o ID como valor.
Filtra os resultados com base no nome se a query de pesquisa for fornecida. """
try:
todosCursos = Curso.retorna_nomeId_cursos()

def deletarCurso(idCurso):
if Curso.deletar(idCurso):
return True
return False
if search_query:
todosCursos = [curso for curso in todosCursos if search_query.lower() in curso[1].lower()]

def buscarCursoId(idCurso):
return {curso[1]: curso[0] for curso in todosCursos} if todosCursos else {}
except Exception as e:
return {"error": f"Erro ao listar cursos: {e}"}

# =================== atualizar ===================
def atualizarCurso(idCurso: int, idArea: int, nome: str, oferta: str, periodo: str, cargaHoraria: int, horasDia: int, qtdAlunos: int) -> dict:
""" Atualiza os dados de um curso existente no banco de dados. """
try:
if Curso.atualizar(idCurso, idArea, nome, oferta, periodo, cargaHoraria, horasDia, qtdAlunos):
return {"success": "Curso atualizado com sucesso."}
return {"error": "Não foi possível atualizar o curso."}
except Exception as e:
return {"error": f"Erro ao atualizar curso: {e}"}

# =================== remover ===================
def removerCurso(idCurso: int) -> dict:
""" Remove um curso do banco de dados pelo ID. """
try:
if Curso.deletar(idCurso):
return {"success": "Curso removido com sucesso."}
return {"error": "Não foi possível remover o curso."}
except Exception as e:
return {"error": f"Erro ao remover curso: {e}"}

# =================== buscar Id ===================
def buscarCursoId(idCurso: int) -> dict:
""" Busca um curso pelo ID e retorna suas informações ou uma mensagem de erro se não for encontrado. """
if not isinstance(idCurso, int):
print('Coloque um id como númerico')
return {"error": "ID inválido. Deve ser um número inteiro."}

try:
resultado = Curso.retorna_curso_id(idCurso)

if resultado:
return {
"idCurso": resultado[0],
"idArea": resultado[1],
"nome": resultado[2],
"oferta": resultado[3],
"periodo": resultado[4],
"cargaHoraria": resultado[5],
"horasDia": resultado[6],
"qtdAlunos": resultado[7],
}
return {"erro": "Curso não encontrado"}
if not resultado or len(resultado) < 8:
return {"error": "Curso não encontrado."}

return {
"idCurso": resultado[0],
"idArea": resultado[1],
"nome": resultado[2],
"oferta": resultado[3],
"periodo": resultado[4],
"cargaHoraria": resultado[5],
"horasDia": resultado[6],
"qtdAlunos": resultado[7],
}
except Exception as e:
return {"erro": f"Erro ao buscar curso: {e}"}

def atualizarCurso(idCurso, idArea, nome, oferta, periodo, cargaHoraria, horasDia, qtdAlunos):
if Curso.atualizar(idCurso, idArea, nome, oferta, periodo, cargaHoraria, horasDia, qtdAlunos):
return True
return False
return {"error": f"Erro ao buscar curso: {e}"}
83 changes: 83 additions & 0 deletions App/controller/equipamento.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
from App.model.equipamentos import Equipamentos
from App.controller.utils import validarInputs

# =================== cadastrar ===================
def cadastrarEquipamento(nome: str, marca: str, quantidade: int, id_area: int) -> dict:
""" Cadastra um novo equipamento no banco de dados. """

# Validação dos dados de entrada
if not validarInputs([nome, marca, quantidade, id_area]):
return {"error": "Preencha todos os campos corretamente."}

try:
# Cadastro do equipamento no banco de dados
equipamento = Equipamentos(nome, marca, quantidade, id_area)
id_equipamento = equipamento.cadastrar_equipamento(id_area)

if id_equipamento:
return {"success": "Equipamento cadastrado com sucesso.", "idEquipamento": id_equipamento}

return {"error": "Não foi possível cadastrar o equipamento."}

except Exception as e:
return {"error": f"Erro ao cadastrar equipamento: {str(e)}"}

# =================== atualizar ===================
def atualizarEquipamento(idEquipamento: int, nome: str, marca: str, quantidade: int, id_area: int) -> dict:
""" Atualiza os dados de um equipamento existente no banco de dados. """
try:
equipamentoModel = Equipamentos(nome, marca, quantidade, id_area)
if equipamentoModel.atualizar(id_area, nome, marca, quantidade, idEquipamento):
return {"success": "Equipamento atualizado com sucesso."}
return {"error": "Falha ao atualizar os dados do equipamento."}

except Exception as e:
return {"error": f"Erro ao atualizar equipamento: {str(e)}"}

# =================== listar ===================
def listarEquipamentos(search_query: str = '') -> dict:
""" Retorna um dicionário com todos os equipamentos cadastrados.
Filtra os resultados com base no nome ou marca se a query de pesquisa for fornecida. """
try:
todosEquipamentos = Equipamentos.retorna_todos_equipamentos()

if search_query:
todosEquipamentos = [
eq for eq in todosEquipamentos if search_query.lower() in eq[0].lower()
]

return {f"{eq[0]}": eq[0] for eq in todosEquipamentos} if todosEquipamentos else {}
except Exception as e:
return {"error": f"Erro ao listar equipamentos: {str(e)}"}

# =================== remover ===================
def removerEquipamento(idEquipamento: int) -> dict:
""" Remove um equipamento do banco de dados pelo ID. """
try:
if Equipamentos.deletar(idEquipamento):
return {"success": "Equipamento removido com sucesso."}
return {"error": "Falha ao remover o equipamento."}
except Exception as e:
return {"error": f"Erro ao remover equipamento: {str(e)}"}

# =================== buscar por ID ===================
def buscarEquipamentoId(idEquipamento: int) -> dict:
""" Busca um equipamento pelo ID e retorna suas informações ou uma mensagem de erro se não for encontrado. """
if not isinstance(idEquipamento, int):
return {"error": "ID inválido. Deve ser um número inteiro."}

try:
resultado = Equipamentos.pesquisar_id(idEquipamento)

if not resultado or len(resultado) < 5:
return {"error": "Equipamento não encontrado"}

return {
"idEquipamento": resultado[0],
"nome": resultado[1],
"marca": resultado[2],
"quantidade": resultado[3],
"id_area": resultado[4],
}
except Exception as e:
return {"error": f"Erro ao buscar equipamento: {str(e)}"}
22 changes: 11 additions & 11 deletions App/controller/pessoa.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,16 @@ def buscarPessoas(search_query: str = '') -> dict:
except Exception as e:
return {"error": f"Erro ao listar pessoas: {str(e)}"}

# =================== Remover ===================
def removerPessoa(idPessoa: int) -> dict:
""" Remove uma pessoa do banco de dados pelo ID. """
try:
if Pessoa.deletar(idPessoa):
return {"success": "Pessoa removida com sucesso."}
return {"error": "Não foi possível remover a pessoa."}
except Exception as e:
return {"error": f"Erro ao remover pessoa: {str(e)}"}

# =================== buscar Id ===================
def buscarPessoaId(idPessoa: int) -> dict:
""" Busca uma pessoa pelo ID e retorna suas informações ou uma mensagem de erro se não for encontrada. """
Expand All @@ -76,14 +86,4 @@ def buscarPessoaId(idPessoa: int) -> dict:
"cargo": resultado[6],
}
except Exception as e:
return {"error": f"Erro ao buscar pessoa: {str(e)}"}

# =================== Remover ===================
def removerPessoa(idPessoa: int) -> dict:
""" Remove uma pessoa do banco de dados pelo ID. """
try:
if Pessoa.deletar(idPessoa):
return {"success": "Pessoa removida com sucesso."}
return {"error": "Não foi possível remover a pessoa."}
except Exception as e:
return {"error": f"Erro ao remover pessoa: {str(e)}"}
return {"error": f"Erro ao buscar pessoa: {str(e)}"}
98 changes: 73 additions & 25 deletions App/controller/sala.py
Original file line number Diff line number Diff line change
@@ -1,42 +1,90 @@
from App.model.sala import Sala
from App.controller.utils import validarInputs

def cadastrarSala(nome, tipo, predio, equipamento, capacidade, feedback):
sala = Sala(nome, tipo, predio, equipamento, capacidade, feedback)
if sala.cadastrar_sala():
return True
return False
# =================== cadastrar ===================
def cadastrarSala(nome: str, tipo: str, predio: str, equipamento: str, capacidade: int, observacao: str) -> dict:
"""Cadastra uma nova sala no banco de dados."""

# Validação dos dados de entrada
if not validarInputs([nome, tipo, predio, equipamento, capacidade, observacao]):
return {"error": "Preencha todos os campos corretamente."}

try:
# Criar instância da sala
sala = Sala(nome, tipo, predio, equipamento, capacidade, observacao)

# Tentativa de cadastro no banco de dados
if sala.cadastrar_sala():
return {"success": "Sala cadastrada com sucesso."}
return {"error": "Não foi possível cadastrar a sala."}

except Exception as e:
return {"error": f"Erro ao cadastrar sala: {str(e)}"}

# =================== atualizar ===================
def atualizarSala(nome: str, tipo: str, predio: str, equipamento: str, capacidade: int, observacao: str, idSala: int,) -> dict:
"""Atualiza os dados de uma sala existente no banco de dados."""

# Validação dos dados de entrada
if not validarInputs([idSala, nome, tipo, predio, equipamento, capacidade, observacao]):
return {"error": "Preencha todos os campos corretamente."}

try:
# Chamada ao método de atualização do modelo Sala
if Sala.atualizar(nome, tipo, predio, equipamento, capacidade, observacao, idSala):
return {"success": "Sala atualizada com sucesso."}
return {"error": "Falha ao atualizar os dados da sala."}

except Exception as e:
return {"error": f"Erro ao atualizar sala: {str(e)}"}

def listarSala():
todasSalas = Sala.buscar_nomeId_sala()
listarSalas = {i[1]:i[0] for i in todasSalas}
return(listarSalas)
# =================== listar ===================
def listarSala(search_query: str = '') -> dict:
"""Retorna um dicionário com todas as salas cadastradas.
Filtra os resultados com base no nome ou tipo se a query de pesquisa for fornecida."""

try:
todasSalas = Sala.buscar_sala()

if search_query:
todasSalas = [
sala for sala in todasSalas if search_query.lower() in sala[1].lower() or search_query.lower() in sala[2].lower()
]

return {sala[1]: sala[0] for sala in todasSalas} if todasSalas else {}
except Exception as e:
return {"error": f"Erro ao listar salas: {str(e)}"}

def atualizarSala(nome, tipo, predio, equipamento, capacidade, observacao, idSala):
if Sala.atualizar(nome, tipo, predio, equipamento, capacidade, observacao, idSala):
return True
return False
# =================== remover ===================
def removerSala(idSala: int) -> dict:
"""Remove uma sala do banco de dados pelo ID."""

def buscarSalaId(idSala):
try:
if Sala.deletar(idSala):
return {"success": "Sala removida com sucesso."}
return {"error": "Não foi possível remover a sala."}
except Exception as e:
return {"error": f"Erro ao remover sala: {str(e)}"}

# =================== buscar por ID ===================
def buscarSalaId(idSala: int) -> dict:
"""Busca uma sala pelo ID e retorna suas informações ou uma mensagem de erro se não for encontrada."""
if not isinstance(idSala, int):
return {"error": "ID inválido. Deve ser um número inteiro."}
try:
resultado = Sala.pesquisar_id(idSala)
if not resultado or len(resultado) < 5:
return {"error": "Sala não encontrado"}

if not resultado:
return {"error": "Sala não encontrada"}

return {
"idSala": resultado[0],
"nome": resultado[1],
"tipo": resultado[2],
"predio": resultado[3],
"equipamentos": resultado[4],
"equipamentos": resultado[4] or None,
"capacidade": resultado[5],
"observacao": resultado[6],
}
"observacao": resultado[6] or None,
}
except Exception as e:
return {"error": f"Erro ao buscar sala: {e}"}

def deletarSala(idSala):
if Sala.deletar(idSala):
return True
return False
return {"error": f"Erro ao buscar sala: {str(e)}"}

0 comments on commit c1265d3

Please sign in to comment.