Así que ahora, para terminar este módulo, quiero asegurarme de que también guardamos los pedidos en un servidor
y, por supuesto, también los recuperamos desde allí.
Ahora tenemos el creador de acciones de órdenes aquí y allá, podemos aprovechar nuevamente Redux Thunk y devolver nuestra
función aquí, que obtiene esa función de envío, que debe ser asíncrona con la palabra clave asíncrona para
que podamos usar async wait y en
esa función aquí que devolvemos, finalmente, por supuesto, enviaré mi objeto de acción, pero antes de hacerlo, ahora podemos enviar
una solicitud para almacenar ese pedido en un servidor y podemos pedir prestada esa solicitud al creador de
la acción de productos. Realmente no hay una
gran diferencia si creamos un producto o ese pedido, por lo que podemos copiar todo este
código de creación de producto aquí hasta aquí y pasarlo a los pedidos. archivo js.
Ahora, por supuesto, también puede
agregar el manejo de errores aquí, no lo tengo aquí, una cosa que quiero agregar al menos es que
no recibo un cheque si la respuesta no está
bien, en cuyo caso quiero para lanzar un nuevo error, algo salió mal, pero ese no debería ser el foco
aquí porque cubrimos el manejo
de errores y la carga de hilanderos,
no realmente la parte en la que quiero centrarme aquí, en cambio, asegurémonos de enviar
esta
solicitud al dirección correcta y ese no debería ser el nodo de productos, pero supongamos
que el nodo de pedidos tiene sentido, supongo porque queremos almacenar nuestros pedidos. Tal vez también queramos almacenar nuestros pedidos específicos para ese usuario para poder almacenarlos en
/ orders / U1, que es mi ID de usuario ficticio, supongo aquí. Más tarde, eso será diferente, más adelante
tendremos una ID real aquí, una ID dinámica, por
ahora simplemente codifiquemos esto aquí para que tengamos una subcarpeta, una subcarpeta por usuario más adelante.
Debería ser una solicitud posterior porque estamos agregando, agregamos algunos datos nuevos, estamos agregando un nuevo pedido.
Este encabezado debe configurarse y, por
supuesto, los datos que enviamos son diferentes. Ahí quiero enviar
los artículos de mi tarjeta y el monto total y otra cosa importante, la fecha del pedido.
Quiero enviar mi fecha aquí convertida en una cadena con toISOString en el objeto de fecha para que creamos esto localmente
en la aplicación y luego guardemos la marca de tiempo en el servidor.
Ahora en su aplicación, es posible que también desee crear esa fecha en el servidor, pero como este
curso no debe centrarse en la programación del lado del servidor, lo haremos aquí y lo enviaremos al servidor sin
preocuparnos demasiado por qué más podría hacer un servidor
por nosotros, en su lugar hagamos todas las cosas aquí y simplemente enviemos esa marca de tiempo terminada al servidor.
Ahora, esto agregará un pedido aquí y una vez que hayamos terminado, recuperaremos nuestros datos de
respuesta que incluirán esa ID generada automáticamente, si recuerdas, también lo hicimos en la creación del producto.
Por lo tanto, ahora cuando agregamos un pedido, por supuesto reenviamos nuestros artículos y la cantidad, pero ahora también quiero
reenviar el ID que obtengo de resData. nombre, esa es la misma
lógica que usamos cuando creamos un producto y hay una cosa adicional, mi instantánea de la fecha, por supuesto, debería
ser la misma que se creó aquí.
Entonces, lo que haré es crear mi instantánea aquí, fechar con una nueva fecha y luego usar esta constante aquí para crear mi
versión de cadena y usar la misma constante aquí para reenviarla con los datos de mi pedido.
Entonces, la fecha se refiere a esta constante de fecha,
de modo que uso una misma marca de tiempo, tanto localmente en mis datos administrados con Redux, que son los datos
con los que trabajo aquí en esta aplicación en ejecución y, por supuesto, también tengo la misma marca de tiempo en el servidor cuál
es la información que cargaré en el futuro u otros dispositivos cargarán. Y ahora solo tenemos que trabajar
en el reductor de pedidos para agregar pedidos.
La identificación ahora es algo que obtengo de
afuera, así que aquí tengo orderData. Id porque eso es lo que
estamos reenviando aquí, es que la ID generada automáticamente por Firebase nos da y la fecha
también se recibe desde afuera, aquí ahora podemos usar orderData. fecha como esta y con eso, tenemos toda la lógica para
agregar un pedido.
Ahora volvamos aquí y agreguemos esto al carrito y haga clic en ordenar ahora, parece que funciona, si regresamos ahora vemos un
nodo de pedidos aquí en Firebase con una subcarpeta U1 para nuestro usuario con la ID única generada y
allí, los datos del pedido con la marca de tiempo con el precio, con los artículos de la tarjeta, que era
esta camisa blanca y que no se ve tan mal, diría yo.