From 7f44cea7e632f1d10cace30626c6e30af636beee Mon Sep 17 00:00:00 2001 From: KuCuu Date: Wed, 26 Aug 2020 21:08:24 -0500 Subject: [PATCH 1/4] Solucion primer problema --- "PULL_REQUEST_TEMPLATE.md\t" | 8 ++++---- src/index.js | 20 ++++++++++++++++---- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git "a/PULL_REQUEST_TEMPLATE.md\t" "b/PULL_REQUEST_TEMPLATE.md\t" index 9a4d861..2794854 100644 --- "a/PULL_REQUEST_TEMPLATE.md\t" +++ "b/PULL_REQUEST_TEMPLATE.md\t" @@ -2,16 +2,16 @@ Solución al reto 04 de Escuela de JavaScript -Nombre: -Usuario Platzi: +Nombre: Jorge Andres Gutierrez +Usuario Platzi: @Kucu ## GRUPO -- [ ] Martes +- [ * ] Martes - [ ] Miercoles - [ ] Jueves ## Reto: - - [ ] Primer problema + - [ * ] Primer problema - [ ] Segundo problema - [ ] Tercer problema - [ ] Cuarto Problema (Opcional) \ No newline at end of file diff --git a/src/index.js b/src/index.js index 4c965e7..9181bcb 100644 --- a/src/index.js +++ b/src/index.js @@ -1,12 +1,23 @@ 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(time <= 6000){ + setTimeout(() => { + resolve(`=== Pedido servido: ${product}, tiempo de preparación ${time}ms para la ${table}`); + }, time); + + }else{ + reject(`*** Disculpa la demora, el ${product} tarda mas de ${time}seg en prepararse.`); + } }); } +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 +27,10 @@ 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(); +//console.log(randomTime()) From 1b739c0e03a3be2385311470777fea31cecea7eb Mon Sep 17 00:00:00 2001 From: KuCuu Date: Wed, 26 Aug 2020 21:52:04 -0500 Subject: [PATCH 2/4] Solucion segundo problema --- src/index.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 9181bcb..aa54189 100644 --- a/src/index.js +++ b/src/index.js @@ -32,5 +32,17 @@ const waiter = () => { .catch((err) => console.error(err)); }; -waiter(); +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((err) => console.error(err)); +} +//waiter(); +waiter2(); //console.log(randomTime()) From 8595067fdf7523c619910c308e1a67e6fb3f2356 Mon Sep 17 00:00:00 2001 From: KuCuu Date: Wed, 26 Aug 2020 22:15:26 -0500 Subject: [PATCH 3/4] Solucion tercer problema --- src/index.js | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/index.js b/src/index.js index aa54189..75c66b0 100644 --- a/src/index.js +++ b/src/index.js @@ -1,12 +1,12 @@ const orders = (time, product, table) => { console.log(`### Orden: ${product} para ${table}`); return new Promise((resolve, reject) => { - if(time <= 6000){ + if (time <= 6000) { setTimeout(() => { resolve(`=== Pedido servido: ${product}, tiempo de preparación ${time}ms para la ${table}`); }, time); - }else{ + } else { reject(`*** Disculpa la demora, el ${product} tarda mas de ${time}seg en prepararse.`); } }); @@ -34,15 +34,29 @@ const waiter = () => { 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); + return orders(randomTime(), menu.pizza, table[2]) }) .then((res) => { - console.log(res); - }) + console.log(res); + }) .catch((err) => console.error(err)); } + +async function waiter3() { + try { + var order1 = await orders(randomTime(), menu.hotdog, [1]); + var order2 = await orders(randomTime(), menu.pizza, [1]); + var order3 = await orders(randomTime(), menu.hotdog, [1]); + console.log(`1- ${order1}`); + console.log(`2- ${order2}`); + console.log(`3- ${order3}`); + } catch (err) { + console.error(err); + } +} //waiter(); -waiter2(); +//waiter2(); +waiter3(); //console.log(randomTime()) From e3f09d3cc939c7ea18114d30e30d8a5e36ec9c35 Mon Sep 17 00:00:00 2001 From: KuCuu Date: Wed, 26 Aug 2020 23:04:13 -0500 Subject: [PATCH 4/4] Solucion cuarto problema --- "PULL_REQUEST_TEMPLATE.md\t" | 6 +++--- package.json | 7 +++++-- src/index.js | 37 +++++++++++++++++++++++++++++++++++- 3 files changed, 44 insertions(+), 6 deletions(-) diff --git "a/PULL_REQUEST_TEMPLATE.md\t" "b/PULL_REQUEST_TEMPLATE.md\t" index 2794854..4b613b2 100644 --- "a/PULL_REQUEST_TEMPLATE.md\t" +++ "b/PULL_REQUEST_TEMPLATE.md\t" @@ -12,6 +12,6 @@ Usuario Platzi: @Kucu ## Reto: - [ * ] Primer problema - - [ ] Segundo problema - - [ ] Tercer problema - - [ ] Cuarto Problema (Opcional) \ No newline at end of file + - [ * ] Segundo problema + - [ * ] Tercer problema + - [ * ] Cuarto Problema (Opcional) \ No newline at end of file diff --git a/package.json b/package.json index bf060d5..b4101bc 100644 --- a/package.json +++ b/package.json @@ -20,5 +20,8 @@ "bugs": { "url": "https://github.com/platzi/escuelajs-reto-04/issues" }, - "homepage": "https://github.com/platzi/escuelajs-reto-04#readme" -} \ No newline at end of file + "homepage": "https://github.com/platzi/escuelajs-reto-04#readme", + "dependencies": { + "node-fetch": "^2.6.0" + } +} diff --git a/src/index.js b/src/index.js index 75c66b0..bd4094e 100644 --- a/src/index.js +++ b/src/index.js @@ -1,3 +1,6 @@ +const fetch = require('node-fetch'); +const url = 'https://us-central1-escuelajs-api.cloudfunctions.net/orders'; + const orders = (time, product, table) => { console.log(`### Orden: ${product} para ${table}`); return new Promise((resolve, reject) => { @@ -56,7 +59,39 @@ async function waiter3() { console.error(err); } } + +async function fetchOrders(){ + try{ + let response = await fetch(url); + let data = await response.json(); + return data.data; + }catch(err){ + console.error(err); + } +} + +async function waiter4(){ + try{ + let productOne = await fetchOrders(); + let productTwo = await fetchOrders(); + let productThree = await fetchOrders(); + let productFour = await fetchOrders(); + + let orderOne = await orders(randomTime(), productOne, table[2]); + let orderTwo = await orders(randomTime(), productTwo, table[2]); + let orderThree = await orders(randomTime(), productThree, table[2]); + let orderFour = await orders(randomTime(), productFour, table[2]); + console.log(orderOne); + console.log(orderTwo); + console.log(orderThree); + console.log(orderFour); + }catch(err){ + console.error(err); + } +} + //waiter(); //waiter2(); -waiter3(); +//waiter3(); +waiter4(); //console.log(randomTime())