Conversation
setup e inicio da criacao das tabelas DB
Criação das classes
organizando banco e classes
iniciando criacao de endpoints
em desenvolvimento
em desenvolvimento
em desenvolvimento
|
|
||
| export class Docente extends User { | ||
|
|
||
| public especialidade?: string[] |
There was a problem hiding this comment.
especialidades seria um nome melhor, no plural.
|
|
||
|
|
||
| export class Estudante extends User{ | ||
| public hobby?: string[] |
| public "id": string | ||
| public "nome": string | ||
| public "email": string | ||
| public "data_nasc": string | ||
| public "turma_id": string | ||
|
|
||
| constructor( | ||
| id:string, | ||
| nome:string, | ||
| email:string, | ||
| data_nasc:string, | ||
| turma_id:string | ||
| ) | ||
| { | ||
| console.log("Chamando o constructor da Classe User") | ||
| this.id = id, | ||
| this.nome = nome, | ||
| this.email = email, | ||
| this.data_nasc = data_nasc | ||
| this.turma_id = turma_id | ||
| } |
There was a problem hiding this comment.
Sobre estilo de código: a declaração dos atributos não precisa de aspas, e pode-se usar a notação constructor(public id: string, public nome: string, etc) {} para ter um código mais enxuto.
Também não deixar console.logs perdidos por aí.
| if (typeof(especialidade) != "object") { | ||
| res.status(errorCode).send("A(s) especialidade(s) deve(m) vir em forma de array!") | ||
| return | ||
| } |
There was a problem hiding this comment.
Isso aqui não garante que a variável é uma array, pois ela pode ser um objeto e passar nessa verificação. Uma solução seria checar, também, se a propriedade length é diferente de undefined. Se for, vai ser uma array e não um objeto.
| if (buscaEspecialidade.length === 0) { | ||
| await connection("LS_Docente_Especialidade").delete().where("id_docente", "like", response[0].id) | ||
| await connection("LS_Docente").delete().where("email", "like", email) | ||
| res.send("Uma ou mais especialidades digitadas não existem.") | ||
| return |
There was a problem hiding this comment.
Não seria melhor verificar se a especialidade é válida antes de ter inserido o docente? Assim não seria necessário removê-lo depois.
labenu-bot
left a comment
There was a problem hiding this comment.
Parabéns pela entrega!
Requisitos do projeto ✅
| Implementações | Feito |
|---|---|
| Tabela de turmas contendo id, nome e modulo | ✅ |
| Tabela de estudantes contendo id, nome, email, data_nasc e turma_id (FK) | ✅ |
| Tabela de docentes contendo id, nome, email, data_nasc e turma_id (FK) | ✅ |
| Tabela de hobbies e tabela de junção (estudante/hobby) | ✅ |
| Tabela de especialidades e tabela de junção (docente/especialidade) | ✅ |
| Endpoint de criação de turma funcionando | ✅ |
| Endpoint de 'busca de turmas ativas' e/ou 'mudança de módulo de turma' funcionando | ✅ |
| Endpoint de criação de estudante funcionando | ✅ |
| Endpoint de 'busca por nome de estudante' e/ou 'mudança de turma de estudante' funcionando | ✅ |
| Endpoint de criação de docente funcionando | ✅ |
| Endpoint de 'busca por todas as pessoas docentes' e/ou 'mudança de turma de docente' funcionando | ✅ |
| [Desafio] Busca por todas as pessoas (estudantes e docentes) de uma mesma turma | - |
| [Desafio] Busca por todas as pessoas com o mesmo hobby (estudantes) | - |
| [Desafio] Busca por todas as pessoas com a especialidade 'POO' (docentes) | - |
| [Desafio] Busca por todas as pessoas com o mesmo signo (estudantes e docentes) | - |
| Feedback do código | Feito |
|---|
Comentários da pessoa avaliadora
Muito bom!
Todas as boas práticas ensinadas foram implementadas.
A organização das pastas ficou interessante, separando-as pelos métodos HTTP dentro de uma pasta de endpoints. Nunca tinha visto e achei legal.
Vejam mais comentários no PR!
Análise realizada por: Iago Soriano
PR de Correção