Um momento
Aula 21
Cursos / GraphQL com Express (Servidor Backend API JSON)
Atualizando nosso Banco de Dados Simulado com Métodos para Criar Recursos (Companhia)

Summary

Resumo da Aula sobre Mutações no GraphQL

Na aula de hoje, focamos na preparação para aprender sobre mutações (mutations) no GraphQL, essencial para atualizar bancos de dados e APIs. Especificamente, implementamos métodos para criar recursos, começando com a criação de uma companhia.

Passos para Criar uma Companhia

  1. Método de Criação:

    • Adicionamos o método create ao nosso modelo simulado no arquivo ORM/companhia.votjs.
    • Esse método aceita um objeto que representa a companhia, contendo as propriedades necessárias: nome, fundadaEm, e site.
  2. Implementação do Método:

    • Retornamos uma nova promessa, onde utilizamos um setTimeout para simular uma espera de 300 milissegundos.
    • Criamos uma variável últimoID, que mantém o controle do último ID utilizado.
  3. Adicionando a Nova Companhia:

    • Usamos companhias.concat para adicionar a nova companhia à lista existente.
    • Incrementamos o últimoID sempre que uma nova companhia é criada, definindo o ID da nova companhia como últimoID + 1.
  4. Retornando a Resposta:

    • Após a criação, retornamos a nova companhia para o cliente, usando resolve.
  5. Validações:

    • Não implementamos validações neste exemplo, assumindo que os dados são sempre enviados corretamente.

Próximos Passos

Na próxima aula, iremos implementar a criação de um produto, seguindo um raciocínio semelhante ao que utilizamos para a companhia.


Nota: A ordem dos passos pode variar, mas o fluxo básico é a inicialização do método, a manipulação da lista de companhias, e o retorno da nova companhia como resposta.

Video Transcript

Estamos de volta nessa aula. Nós vamos em preparação para aprender sobre mutações, mutations no GraphQL. A gente tem que atualizar nosso banco, nosso API e ORM simulado para poder ter métodos para criar recursos, nesse caso criar uma companhia ou criar um produto. Então vamos fazer isso nessa aula. Voltamos ao editor de texto aqui. Então vamos fazer o seguinte, primeiro vamos começar com companhia. A gente já viu que para aprender, por exemplo, você pegar a lista de companhias, você fala assim, companhia.find. A gente criou esse método no nosso modelo simulado, companhia aqui que está no arquivo ORM, barra companhia.votjs, que tem o banco de dados simulado seguido dos métodos. Nesse caso vai encontrar, obter todas as companhias, find all, obter uma companhia por id. Agora a gente vai fazer o create para poder criar uma companhia. Então vamos lá. Aqui depois do find vamos adicionar create. E nós vamos criar, basear no objeto que é dado como argumento a essa função aqui. Vamos pegar um companhia como objeto. Ele vai ter várias propriedades nesse caso, vai ter id, não tem id, o que a gente faz aqui. Vai ter nome, fundada em e e os outros propriedades, fundada em site. Então esses três vão ser necessárias para criar uma companhia. Então vamos supor que esses caras são passados como objeto e como esse parâmetro aqui. Aí o que a gente vai fazer? Primeiro de tudo vamos sempre retornar a promessa. Então vamos fazer aquela mesma coisa. Vamos retornar uma nova promessa. Faço uma função aqui, essa função, vamos definir os dois parâmetros resolve e reject. Vamos dar um set time out para simular uma espera. Eu vou usar 300 milis segundos. Agora vamos definir como adicionar uma nova companhia. Se você olhar lá em cima a gente tem essa lista de companhias que a gente definiu com let. Para poder adicionar uma nova companhia você vai fazer o seguinte, você vai pegar essa lista e adicionar um outro cara ao final. E também a gente tem que aprender a verificar como pega o ID, como gerar um ID. Para gerar o ID a gente vai usar uma variável aqui fora para saber qual foi o último ID que foi criado. Então vamos fazer o ID, o negócio do ID. Vamos criar a variável aqui, let, último ID. Agora esse último ID vai corresponder a o ID do último recorde que foi criado. Nesse caso tem o ID 1, 2 e 3. 3 é o último recorde, então o último ID vai ser 3. Então quando a gente for criar a nossa nova companhia vamos adicionar essa lista e setar o ID para o último ID mais um. Não se esqueça de atualizar o último ID aqui. Então vamos lá. A gente vai fazer o seguinte, pega a lista de companhias, vamos setar esse cara para companhias.comcat, a companhia que foi dada com o argumento. Não tem nenhuma validação esse negócio aqui. O que a gente vai só fazer aqui no simulado, vamos supor que sempre os dados estão sendo enviados corretamente, validados, tá? Então ele vai pegar, criar uma nova lista e adicionar essa nova companhia a lista de companhias. Mas não tem o ID. Então se você não vai poder fazer o ID, vamos fazer o seguinte, eu vou colocar o objeto aqui e vou copiar as propriedades da companhia que foi passada e adicionar o ID. Agora para o ID, vamos fazer o seguinte, pega lá o último ID e seta para o último ID mais um para poder incrementar e usa esse último ID aqui, tá? Quando você fizer isso, o último ID, nesse caso, se você iniciar com aqueles três objetos, será o último ID 1, 2, 3, 3 mais 1 é 4. Então o último ID será 4 e o ID dessa nova companhia será 4. Tá bom? E finalmente, quando você fizer isso, como resposta a Frontend, você vai retornar ao cliente, nesse caso, a companhia. Na verdade você tem que retornar normalmente a companhia que foi criada, então esse objeto aqui. Então vou extrair uma variável, recortar, vou dizer nova companhia, vou criar uma variável nova companhia, ponho o objeto dentro dessa variável e retorna a variável aqui. Na verdade resolve, porque é uma promessa. Então revisando aqui, create, pega, atualize o ID, último ID incrementado, faz um objeto para nova companhia, copia as propriedades, dados pelo, para aquele que chamou essa função, seta o ID, agora atualiza a lista de companhias com o concreto, com a nova companhia, finalmente dá o resolve com nova companhia. Salva isso. Por isso é só para a companhia, para criar uma companhia. A próxima etapa agora é criar um produto, então vamos fazer isso na próxima aula.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: