-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
pessoa / curso / sala / área / equipamento ajuste e padronização do CRUD para funcionar modulo Web e modulo Desktop
- Loading branch information
Showing
5 changed files
with
250 additions
and
83 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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}"} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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)}"} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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)}"} |