Portanto, agora para terminar neste módulo, quero garantir que também salvemos pedidos em um servidor
e, é claro, que os buscemos também.
Agora, temos o criador de ação de pedidos aqui e ali, podemos novamente aproveitar o Redux Thunk e retornar
nossa função aqui, que obtém essa função de despacho, que deve ser assíncrona com a palavra-chave async,
para que possamos usar async wait e
nessa função aqui que retornamos, é claro que enviarei meu objeto de ação, mas antes de fazer isso, agora
podemos enviar uma solicitação para armazenar esse pedido em um servidor e podemos emprestar essa solicitação do criador
da ação dos produtos. Não há realmente uma
grande diferença se criamos um produto ou esse pedido, para que possamos copiar todo o código
de criação do produto aqui até aqui e movê-lo para os pedidos. arquivo js.
Agora, é claro, você também
pode adicionar o tratamento de erros aqui, não o estou aqui, pelo menos quero acrescentar que não recebo uma verificação
se a resposta não está correta; nesse caso, quero
para gerar um novo erro, algo deu errado, mas esse não deve ser o foco aqui, porque abordamos o tratamento
de erros e o carregamento
de giradores, não exatamente a parte em
que quero focar aqui. Em vez disso, vamos garantir que estamos enviando essa solicitação para
o
endereço certo e esse não deve ser o nó de produtos, mas digamos que o nó
de pedidos, que meio que faz sentido, acho, porque queremos armazenar nossos pedidos. Talvez também desejemos armazenar nossos pedidos específicos para esse usuário, para que possamos armazenar em
/ orders / U1, que é meu ID de usuário fictício que assumo aqui. Mais tarde isso será diferente, mais tarde
teremos um ID real aqui, um ID dinâmico,
por enquanto, vamos codificar isso aqui para que tenhamos uma subpasta, uma subpasta por usuário posteriormente.
Deve ser uma solicitação de postagem porque estamos adicionando, adicionando novos dados, adicionando um novo pedido.
Esse cabeçalho precisa ser definido e, é
claro, os dados que estamos enviando são diferentes. Lá, quero enviar
os itens do meu cartão, o valor total e outra coisa importante, a data do pedido.
Quero enviar minha data aqui convertida em uma sequência de caracteres com toISOString no objeto date para que possamos criá-la
localmente no aplicativo e salve o carimbo de data e hora no servidor.
Agora, no seu aplicativo, você também pode criar essa data no servidor, mas como este curso não deve
se concentrar na programação do servidor, faremos isso aqui e enviaremos para o servidor e não nos preocuparemos muito com
isso. o que mais um servidor poderia fazer por
nós; em vez disso, vamos fazer todas as coisas aqui e enviar o carimbo de data e hora final ao servidor.
Agora, isso adicionará um pedido aqui e, quando terminarmos, retornaremos nossos dados de resposta,
que incluirão o ID gerado automaticamente, se você se lembrar, o fizemos na criação do produto.
Portanto, agora, quando adicionamos um pedido, é claro que encaminhamos nossos itens e a quantia, mas agora também desejo encaminhar
o ID que recebo de resData. nome, essa é a mesma
lógica que usamos quando criamos um produto e há mais uma coisa: meu instantâneo de data deve ser
o mesmo que o criado aqui.
Então, na verdade, o que vou fazer é criar meu instantâneo aqui, data com nova data e, em seguida, usar essa constante aqui para criar
minha versão de string e usar a mesma constante aqui para encaminhá-la com os dados do meu pedido.
Portanto, aqui date refere-se a essa data constante, para
que eu use um e o mesmo timestamp, ambos localmente nos meus dados gerenciados com Redux, que são os
dados com os quais trabalho aqui neste aplicativo em execução e, é claro, também têm o mesmo timestamp no servidor quais
são os dados que carregarei no futuro ou outros dispositivos carregarão. E agora só precisamos trabalhar
no redutor de pedidos para adicionar pedidos.
O ID agora é algo que recebo de
fora, então aqui tenho orderData. Id, porque é isso que
estamos encaminhando aqui, é que o ID Firebase gerado automaticamente nos fornece e a data
também é recebida de fora. Agora, agora podemos usar orderData. datas como esta e com isso, temos toda a lógica para
adicionar um pedido.
Agora, vamos voltar aqui e adicioná-lo ao carrinho e clicar em pedir agora, isso parece funcionar. Se voltarmos, agora veremos um nó
de pedidos aqui no Firebase com uma subpasta U1 para nosso usuário com o ID exclusivo gerado e, os
dados do pedido com o carimbo de data e hora com o preço, com os itens do cartão que eram
essa camisa branca e que nem tudo parece tão ruim, eu diria.