diff --git "a/PULL_REQUEST_TEMPLATE.md\t" "b/PULL_REQUEST_TEMPLATE.md\t" index 9a4d861..24dab4f 100644 --- "a/PULL_REQUEST_TEMPLATE.md\t" +++ "b/PULL_REQUEST_TEMPLATE.md\t" @@ -1,17 +1,17 @@ ## DESCRIPTION -Solución al reto 04 de Escuela de JavaScript +Solución al reto 02 de Escuela de JavaScript Nombre: -Usuario Platzi: +Usuario Platzi: FelipeMorales ## GRUPO - [ ] Martes - [ ] Miercoles -- [ ] Jueves +- [x] Jueves ## Reto: - - [ ] Primer problema - - [ ] Segundo problema - - [ ] Tercer problema - - [ ] Cuarto Problema (Opcional) \ No newline at end of file + - [x] Primer problema + - [x] Segundo problema + - [x] Tercer problema + - [x] Cuarto Problema (Opcional) \ No newline at end of file diff --git a/package.json b/package.json index bf060d5..c0c3334 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "escuelajs-reto-04", "version": "1.0.0", - "description": "Reto 4 Septiembre 21: Curso de Fundamentos de JavaScript", + "description": "Reto 2 - Curso de Fundamentos de JavaScript", "main": "index.js", "scripts": { "start": "node src/index.js" @@ -15,10 +15,14 @@ "escuelajs", "node" ], - "author": "Oscar Barajas ", + "author": "Felipe Morales ", "license": "MIT", "bugs": { "url": "https://github.com/platzi/escuelajs-reto-04/issues" }, - "homepage": "https://github.com/platzi/escuelajs-reto-04#readme" + + "homepage": "https://github.com/platzi/escuelajs-reto-04#readme", + "devDependencies": { + "node-fetch": "^2.6.0" + } } \ No newline at end of file diff --git a/src/index.js b/src/index.js index 4c965e7..9670e91 100644 --- a/src/index.js +++ b/src/index.js @@ -1,12 +1,25 @@ +const fetch = requier('node-fetch'); + const orders = (time, product, table) => { console.log(`### Orden: ${product} para ${table}`); return new Promise((resolve, reject) => { - setTimeout(() => { - resolve(`=== Pedido servido: ${product}, tiempo de preparación ${time}ms para la ${table}`); - }, time); + if (true) { + setTimeout(() => { + resolve(`=== Pedido servido: ${product}, tiempo de preparación ${time}ms para la ${table}`); + }, time); + } else { + reject(new Error('El pedido no se ha completado')) + } }); } +//Problema 1 +const randomTime = () => { +let max = 8000; +let min = 1000; +return Math.round(Math.random() * (max - min) * min); +} + const menu = { hamburger: 'Combo Hamburguesa', hotdog: 'Combo Hot Dogs', @@ -16,9 +29,68 @@ const menu = { const table = ['Mesa 1', 'Mesa 2', 'Mesa 3', 'Mesa 4', 'Mesa 5']; const waiter = () => { - orders(6000, menu.hamburger, table[3]) + orders(randomTime(), menu.hamburger, table[3]) .then((res) => console.log(res)) .catch((err) => console.error(err)); }; -waiter(); +//Problema 2 +//Pedido "Mesa 1": Combo Hotdog Pedido "Mesa 3": Combo Pizza +const waiter2 = () => { + orders(randomTime(), menu.hotdog, table[0]) + .then((res) => { + console.log(res) + return orders(randomTime(), menu.pizza, table[2]) + }) + .then(res => console.log(res)) + .catch(error => console.log(error)) +} + +//Problema 3: +//Pedido "Mesa 2": Combo Hotdog, Combo Pizza, Combo Hotdog + +const waiter3 = async () => { + try { + const firstOrder = await orders(randomTime(), menu.hotdog, table[1]); + const secondOrder = await orders(randomTime(), menu.pizza, table[1]); + const thirdOrder = await orders(randomTime(), menu.hamburger, table[1]); + + console.log("firstOrder", firstOrder) + console.log("secondOrder", secondOrder) + console.log("thirdOrder", thirdOrder) + } catch (e) { + console.error(new Error('Se presento un problema con el pedido!')); + } +} + +//Problema 4 + +const fetchOrders = async () => { + const API = "https://us-central1-escuelajs-api.cloudfunctions.net/orders"; + try { + const response = await fetch(API); + const data = await response.json(); + return data.data; + } catch (e) { + console.log(e); + } +} + +const waiter4 = async () => { + const product4 = await fetchOrders(); + const firstOrder = await orders(randomTime(), menu.hotdog, table[3]); + const secondOrder = await orders(randomTime(), menu.pizza, table[3]); + const thirdOrder = await orders(randomTime(), menu.hamburger, table[3]); + const fourtOrder = await orders(randomTime(), product4, table[3]); + + console.log("firstOrder", firstOrder) + console.log("secondOrder", secondOrder) + console.log("thirdOrder", thirdOrder) + console.log("fourtOrder", fourtOrder) +} + +// waiter(); +// waiter2(); +// waiter3(); +waiter4(); +