From ddae166eea90b18422125e0fe1b42f80b6e9ac39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20P=C3=A9rez?= Date: Sun, 14 Jun 2020 21:17:53 -0500 Subject: [PATCH 1/8] Firts problem: resolved? --- "PULL_REQUEST_TEMPLATE.md\t" | 17 ----------------- src/index.js | 8 +++++++- 2 files changed, 7 insertions(+), 18 deletions(-) delete mode 100644 "PULL_REQUEST_TEMPLATE.md\t" diff --git "a/PULL_REQUEST_TEMPLATE.md\t" "b/PULL_REQUEST_TEMPLATE.md\t" deleted file mode 100644 index 9a4d861..0000000 --- "a/PULL_REQUEST_TEMPLATE.md\t" +++ /dev/null @@ -1,17 +0,0 @@ -## DESCRIPTION - -Solución al reto 04 de Escuela de JavaScript - -Nombre: -Usuario Platzi: - -## GRUPO -- [ ] Martes -- [ ] Miercoles -- [ ] Jueves - -## Reto: - - [ ] 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..9ef0e8e 100644 --- a/src/index.js +++ b/src/index.js @@ -1,9 +1,15 @@ +const maximo=8000; +const minimo=1000; +const randomTime=(maximo, minimo)=>Math.round(Math.random()*(maximo-minimo)+minimo); +//randomTime(8000,1000); no olvidar como se llama funcion + 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); + }, randomTime(maximo,minimo)); + reject(`La orden fue entregada fuera del tiempo establecido`) }); } From dc19b16d07c2bb641d199bc3a224730794b7b0b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20P=C3=A9rez?= Date: Mon, 15 Jun 2020 10:21:26 -0500 Subject: [PATCH 2/8] first problem: resolved --- src/index.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/index.js b/src/index.js index 9ef0e8e..963f579 100644 --- a/src/index.js +++ b/src/index.js @@ -1,15 +1,15 @@ const maximo=8000; const minimo=1000; const randomTime=(maximo, minimo)=>Math.round(Math.random()*(maximo-minimo)+minimo); -//randomTime(8000,1000); no olvidar como se llama funcion 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}`); - }, randomTime(maximo,minimo)); - reject(`La orden fue entregada fuera del tiempo establecido`) + if(randomTime(maximo,minimo)<=time){ + setTimeout(() => { + resolve(`=== Pedido servido: ${product}, tiempo de preparación ${time}ms para la ${table}`); + }, time); + }else reject(`La orden fue entregada fuera del tiempo establecido`) }); } From 459c8f75fc4a269c0e668fb2a78ce4e893dc3995 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20P=C3=A9rez?= Date: Mon, 15 Jun 2020 11:29:39 -0500 Subject: [PATCH 3/8] Second problem: resolved --- src/index.js | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/src/index.js b/src/index.js index 963f579..f4d594b 100644 --- a/src/index.js +++ b/src/index.js @@ -5,11 +5,23 @@ const randomTime=(maximo, minimo)=>Math.round(Math.random()*(maximo-minimo)+mini const orders = (time, product, table) => { console.log(`### Orden: ${product} para ${table}`); return new Promise((resolve, reject) => { - if(randomTime(maximo,minimo)<=time){ + let Timing=randomTime(maximo, minimo); + if(Timing<=time){ setTimeout(() => { - resolve(`=== Pedido servido: ${product}, tiempo de preparación ${time}ms para la ${table}`); + resolve(`=== Pedido servido: ${product}, tiempo de preparación ${Timing}ms para la ${table}`); }, time); - }else reject(`La orden fue entregada fuera del tiempo establecido`) + }else reject(`La orden ${product} para ${table} fue entregada fuera del tiempo establecido a ${Timing}ms`); + }); +} + +const pickup_orders = (time, product, table) => { + return new Promise((resolve, reject) => { + let Timing=randomTime(maximo, minimo); + if(Timing<=time){ + setTimeout(() => { + resolve(`=== Pedido retirado: ${product}, tiempo de retiro ${Timing}ms de la ${table}`); + }, time); + }else reject(`El pedido ${product} para la ${table} fue recogido fuera del rango de tiempo requerido a ${Timing}ms`); }); } @@ -27,4 +39,15 @@ const waiter = () => { .catch((err) => console.error(err)); }; +const waiter2=()=>{ + pickup_orders(6000, menu.hotdog, table[0]) + .then((res) =>{ + console.log(res) + return pickup_orders(6000, menu.pizza,table[2]) + }) + .then((res) => console.log(res)) + .catch((err) => console.error(err)); +} + waiter(); +waiter2(); \ No newline at end of file From 5f41dbe6a923c5a777fed1d84731e1386054d0e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20P=C3=A9rez?= Date: Mon, 15 Jun 2020 21:56:05 -0500 Subject: [PATCH 4/8] lacking --- src/index.js | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index f4d594b..4528cdf 100644 --- a/src/index.js +++ b/src/index.js @@ -49,5 +49,32 @@ const waiter2=()=>{ .catch((err) => console.error(err)); } +const onerror=()=>console.log(`No se puedo retirar el pedido`); + +const pickup_order2 = (time, product, table) => { + return new Promise((resolve, reject) => { + let Timing=randomTime(maximo, minimo); + if(Timing<=time){ + setTimeout(() => { + resolve(`=== Pedido retirado: ${product}, tiempo de retiro ${Timing}ms de la ${table}`); + }, time); + }else reject(`El pedido ${product} para la ${table} fue recogido fuera del rango de tiempo requerido a ${Timing}ms`); + }); +} + +const waiter3=()=>{ + async const pickup_order2=()=>{ + const order=[(6000, menu.hotdog, table[1]),(6000, menu.pizza, table[0]), (6000, menu.hotdog, table[1])]; + const promises=order.map((time, product, table)=>pickup_order2(time, product, table)); + try{ + const pickup=await Promise.all(promises); + console.log(pickup); + }catch([time, product, table]){ + onerror() + } + } +} + waiter(); -waiter2(); \ No newline at end of file +waiter2(); +waiter3(); \ No newline at end of file From ef225a933163a874ba56344a60ca6e2c8ec3dea4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20P=C3=A9rez?= Date: Tue, 16 Jun 2020 22:00:23 -0500 Subject: [PATCH 5/8] lacking 2 --- src/index.js | 53 ++++++++++++++++++++++------------------------------ 1 file changed, 22 insertions(+), 31 deletions(-) diff --git a/src/index.js b/src/index.js index 4528cdf..2c62d3a 100644 --- a/src/index.js +++ b/src/index.js @@ -2,26 +2,26 @@ const maximo=8000; const minimo=1000; const randomTime=(maximo, minimo)=>Math.round(Math.random()*(maximo-minimo)+minimo); -const orders = (time, product, table) => { +const orders = (time,product,table) => { console.log(`### Orden: ${product} para ${table}`); return new Promise((resolve, reject) => { let Timing=randomTime(maximo, minimo); - if(Timing<=time){ - setTimeout(() => { - resolve(`=== Pedido servido: ${product}, tiempo de preparación ${Timing}ms para la ${table}`); - }, time); - }else reject(`La orden ${product} para ${table} fue entregada fuera del tiempo establecido a ${Timing}ms`); + setTimeout(() => { + let working=true; + if(working) resolve(`=== Pedido servido: ${product}, tiempo de preparación ${Timing}ms para la ${table}`); + else reject(`El pedido no pudo ser preparado`); + }, time); }); } const pickup_orders = (time, product, table) => { return new Promise((resolve, reject) => { let Timing=randomTime(maximo, minimo); - if(Timing<=time){ - setTimeout(() => { - resolve(`=== Pedido retirado: ${product}, tiempo de retiro ${Timing}ms de la ${table}`); - }, time); - }else reject(`El pedido ${product} para la ${table} fue recogido fuera del rango de tiempo requerido a ${Timing}ms`); + setTimeout(() => { + let working=true; + if(working) resolve(`=== Pedido retirado: ${product}, tiempo de retiro ${Timing}ms para la ${table}`); + else reject(`El pedido no pudo ser retirado`); + }, time); }); } @@ -49,32 +49,23 @@ const waiter2=()=>{ .catch((err) => console.error(err)); } -const onerror=()=>console.log(`No se puedo retirar el pedido`); - -const pickup_order2 = (time, product, table) => { - return new Promise((resolve, reject) => { - let Timing=randomTime(maximo, minimo); - if(Timing<=time){ - setTimeout(() => { - resolve(`=== Pedido retirado: ${product}, tiempo de retiro ${Timing}ms de la ${table}`); - }, time); - }else reject(`El pedido ${product} para la ${table} fue recogido fuera del rango de tiempo requerido a ${Timing}ms`); - }); -} - const waiter3=()=>{ - async const pickup_order2=()=>{ - const order=[(6000, menu.hotdog, table[1]),(6000, menu.pizza, table[0]), (6000, menu.hotdog, table[1])]; - const promises=order.map((time, product, table)=>pickup_order2(time, product, table)); + const pickup_orders2=async()=>{ try{ + const order=[(6000, menu.hotdog ,table[1])]; + const promises=order.map((time, product, table)=>orders(time, product, table)); const pickup=await Promise.all(promises); console.log(pickup); - }catch([time, product, table]){ - onerror() + console.log(`Los pedidos para la ${table[1]} fueron retirados`); + }catch(error){ + onerror(error) } } + pickup_orders2(); } -waiter(); -waiter2(); +const onerror=()=>console.log(`No se pudo retirar los pedidos solicitados`); + +//waiter(); +//waiter2(); waiter3(); \ No newline at end of file From ca773d59a7b517d633192037b6b70ce3771d0882 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20P=C3=A9rez?= Date: Wed, 17 Jun 2020 12:26:40 -0500 Subject: [PATCH 6/8] Third problem: solved --- src/index.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/index.js b/src/index.js index 2c62d3a..8f10489 100644 --- a/src/index.js +++ b/src/index.js @@ -52,11 +52,14 @@ const waiter2=()=>{ const waiter3=()=>{ const pickup_orders2=async()=>{ try{ - const order=[(6000, menu.hotdog ,table[1])]; - const promises=order.map((time, product, table)=>orders(time, product, table)); - const pickup=await Promise.all(promises); + order=[menu.hotdog, menu.pizza, menu.hotdog] + const promises=order.map((product)=>orders(6000, product, table[1])); + const alertpickup=await Promise.all(promises); + console.log(alertpickup); + console.log(`Los pedidos para la ${table[1]} ya estan listos para ser retirados`); + const finalpromises=order.map((product)=>pickup_orders(6000, product, table[1])); + const pickup=await Promise.all(finalpromises); console.log(pickup); - console.log(`Los pedidos para la ${table[1]} fueron retirados`); }catch(error){ onerror(error) } @@ -66,6 +69,6 @@ const waiter3=()=>{ const onerror=()=>console.log(`No se pudo retirar los pedidos solicitados`); -//waiter(); -//waiter2(); +waiter(); +waiter2(); waiter3(); \ No newline at end of file From dc102dd0caf79399a45de0c855f3b71054337644 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20P=C3=A9rez?= Date: Wed, 17 Jun 2020 15:48:34 -0500 Subject: [PATCH 7/8] fail 3 --- src/index.js | 55 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 52 insertions(+), 3 deletions(-) diff --git a/src/index.js b/src/index.js index 8f10489..70096fe 100644 --- a/src/index.js +++ b/src/index.js @@ -67,8 +67,57 @@ const waiter3=()=>{ pickup_orders2(); } +const API_URL = 'https://us-central1-escuelajs-api.cloudfunctions.net/orders'; +const opts = { crossDomain: true }; + +const fetchOrders=()=>{ + return new Promise((resolve, reject)=>{ + $ + .get(API_URL,opts,function(data) + { + resolve(data); + console.log(`hola`) + }) + .fail(()=>reject(id)) + }) +} + +const pickup_orders3=async()=>{ + try + { + var persona=await fetchOrders(data) + console.log(persona) + }catch(id) + { + onerror(id) + } +} +pickup_orders3() + + +//const waiter4=()=>{ + //const pickup_orders3=async()=>{ + //try{ + //data= await fetchOrders(API_URL) + //console.log(data) + //order=[menu.hotdog, menu.pizza, menu.hotdog] + //const promises=order.map((product)=>fetchOrders(6000, product, table[1])); + //const alertpickup=await Promise.all(promises); + //console.log(alertpickup); + //console.log(`Los pedidos para la ${table[1]} ya estan listos para ser retirados`); + //const finalpromises=order.map((product)=>pickup_orders(6000, product, table[1])); + //const pickup=await Promise.all(finalpromises); + //console.log(pickup); + //}catch(error){ + // onerror(error) + //} + //} + //pickup_orders3(); +//} + const onerror=()=>console.log(`No se pudo retirar los pedidos solicitados`); -waiter(); -waiter2(); -waiter3(); \ No newline at end of file +//waiter(); +//waiter2(); +//waiter3(); +//waiter4(); \ No newline at end of file From d1312a1f4dd21b88020835d12b4407ef23a04dbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20P=C3=A9rez?= Date: Sat, 20 Jun 2020 18:36:25 -0500 Subject: [PATCH 8/8] fourth problem: solved (finally) --- package-lock.json | 13 ++++++++ package.json | 7 +++-- src/index.js | 79 +++++++++++++++++++---------------------------- 3 files changed, 49 insertions(+), 50 deletions(-) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..0844706 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,13 @@ +{ + "name": "escuelajs-reto-04", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "node-fetch": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + } + } +} 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 70096fe..787a455 100644 --- a/src/index.js +++ b/src/index.js @@ -1,3 +1,5 @@ +const fetch = require("node-fetch"); + const maximo=8000; const minimo=1000; const randomTime=(maximo, minimo)=>Math.round(Math.random()*(maximo-minimo)+minimo); @@ -67,57 +69,38 @@ const waiter3=()=>{ pickup_orders2(); } -const API_URL = 'https://us-central1-escuelajs-api.cloudfunctions.net/orders'; -const opts = { crossDomain: true }; - -const fetchOrders=()=>{ - return new Promise((resolve, reject)=>{ - $ - .get(API_URL,opts,function(data) - { - resolve(data); - console.log(`hola`) - }) - .fail(()=>reject(id)) - }) -} - -const pickup_orders3=async()=>{ - try - { - var persona=await fetchOrders(data) - console.log(persona) - }catch(id) - { - onerror(id) +const fetchOrders=async()=>{ + try{ + n=0; + let newarrayorder = []; + while(n<4){ + n++; + let url = 'https://us-central1-escuelajs-api.cloudfunctions.net/orders'; + const response = await fetch(url); + const commits = await response.json(); + const answer=commits.data; + newarrayorder.push(answer); } + console.log(newarrayorder); + const promises=newarrayorder.map((product)=>orders(6000, product, table[3])); + const alertpickup=await Promise.all(promises); + console.log(alertpickup); + console.log(`Los pedidos para la ${table[3]} ya estan listos para ser retirados`); + const finalpromises=newarrayorder.map((product)=>pickup_orders(6000, product, table[1])); + const pickup=await Promise.all(finalpromises); + console.log(pickup); + }catch(error){ + onerror(); + } } -pickup_orders3() - -//const waiter4=()=>{ - //const pickup_orders3=async()=>{ - //try{ - //data= await fetchOrders(API_URL) - //console.log(data) - //order=[menu.hotdog, menu.pizza, menu.hotdog] - //const promises=order.map((product)=>fetchOrders(6000, product, table[1])); - //const alertpickup=await Promise.all(promises); - //console.log(alertpickup); - //console.log(`Los pedidos para la ${table[1]} ya estan listos para ser retirados`); - //const finalpromises=order.map((product)=>pickup_orders(6000, product, table[1])); - //const pickup=await Promise.all(finalpromises); - //console.log(pickup); - //}catch(error){ - // onerror(error) - //} - //} - //pickup_orders3(); -//} +waiter4=()=>{ + fetchOrders(); +} const onerror=()=>console.log(`No se pudo retirar los pedidos solicitados`); -//waiter(); -//waiter2(); -//waiter3(); -//waiter4(); \ No newline at end of file +waiter(); +waiter2(); +waiter3(); +waiter4(); \ No newline at end of file