From b7e5a11f57031a94d426055c93dad5f0111765bf Mon Sep 17 00:00:00 2001 From: Travis Jette Date: Tue, 22 Aug 2017 15:22:46 -0600 Subject: [PATCH 1/4] having trouble getting functions to pass tests --- .../src/functions/getActiveUsers.js | 15 ++++++++++++++ .../src/functions/getMostExpensiveProduct.js | 17 ++++++++++++++++ .../src/functions/getOrderInfo.js | 20 +++++++++++++++++++ .../src/functions/getProductById.js | 14 +++++++++++++ .../src/functions/getUserById.js | 16 +++++++++++++++ 5 files changed, 82 insertions(+) create mode 100644 data-and-functions-1/src/functions/getActiveUsers.js create mode 100644 data-and-functions-1/src/functions/getMostExpensiveProduct.js create mode 100644 data-and-functions-1/src/functions/getOrderInfo.js create mode 100644 data-and-functions-1/src/functions/getProductById.js create mode 100644 data-and-functions-1/src/functions/getUserById.js diff --git a/data-and-functions-1/src/functions/getActiveUsers.js b/data-and-functions-1/src/functions/getActiveUsers.js new file mode 100644 index 0000000..0d97aae --- /dev/null +++ b/data-and-functions-1/src/functions/getActiveUsers.js @@ -0,0 +1,15 @@ +const getActiveUsers = (DATA, id) => { + if (DATA == null || DATA.users == null || id == null) { + return null + } + + const activeUsers = [] + DATA.users.forEach((user) => { + if (user.accountActive === true) { + activeUsers.push(user) + } + }) + return activeUsers +} + +export default getActiveUsers diff --git a/data-and-functions-1/src/functions/getMostExpensiveProduct.js b/data-and-functions-1/src/functions/getMostExpensiveProduct.js new file mode 100644 index 0000000..df9dbce --- /dev/null +++ b/data-and-functions-1/src/functions/getMostExpensiveProduct.js @@ -0,0 +1,17 @@ + +const getMostExpensiveProduct = (DATA) => { + if (DATA == null || DATA.products == null) { + return null + } + + let mostExpensive + + DATA.products.forEach((p) => { + if (mostExpensive === null || mostExpensive.price < p.price) { + mostExpensive = p + } + }) + return mostExpensive +} + +export default getMostExpensiveProduct diff --git a/data-and-functions-1/src/functions/getOrderInfo.js b/data-and-functions-1/src/functions/getOrderInfo.js new file mode 100644 index 0000000..deaeed9 --- /dev/null +++ b/data-and-functions-1/src/functions/getOrderInfo.js @@ -0,0 +1,20 @@ +import getUserById from './getUserById' +import getProductById from './getProductById' + +const getOrderInfo = (DATA, id) => { + if (DATA == null || DATA.orders == null || id == null) { + return null + } + const orderInfoArr = [] + DATA.orders.forEach((o) => { + const orderInfo = { + orderId: o.id, + userName: getUserById(o.userName), + price: getProductById(o.productId).name + } + orderInfoArr.push(orderInfo) + }) + return orderInfoArr +} + +export default getOrderInfo diff --git a/data-and-functions-1/src/functions/getProductById.js b/data-and-functions-1/src/functions/getProductById.js new file mode 100644 index 0000000..386da30 --- /dev/null +++ b/data-and-functions-1/src/functions/getProductById.js @@ -0,0 +1,14 @@ +const getProductById = (DATA, id) => { + if (DATA == null || DATA.users == null || id == null) { + return null + } + let product + DATA.products.forEach((p) => { + if (product.id === id) { + product = p + } + }) + return product +} + +export default getProductById diff --git a/data-and-functions-1/src/functions/getUserById.js b/data-and-functions-1/src/functions/getUserById.js new file mode 100644 index 0000000..a505dd4 --- /dev/null +++ b/data-and-functions-1/src/functions/getUserById.js @@ -0,0 +1,16 @@ +const getUserById = (DATA, id) => { + if (DATA == null || DATA.users == null || id == null) { + return null + } + + let user + + DATA.users.forEach((u) => { + if (u.id === id) { + user = u + } + }) + return user +} + +export default getUserById From 84fe4a8a8c14d148224a62aa760aa78a7c8ff3aa Mon Sep 17 00:00:00 2001 From: Travis Jette Date: Tue, 22 Aug 2017 17:20:04 -0600 Subject: [PATCH 2/4] made a small change --- data-and-functions-1/src/functions/getUserById.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data-and-functions-1/src/functions/getUserById.js b/data-and-functions-1/src/functions/getUserById.js index a505dd4..8aad7f5 100644 --- a/data-and-functions-1/src/functions/getUserById.js +++ b/data-and-functions-1/src/functions/getUserById.js @@ -5,7 +5,7 @@ const getUserById = (DATA, id) => { let user - DATA.users.forEach((u) => { + DATA.users.forEach((u, id) => { if (u.id === id) { user = u } From dc6a81d31f76dcef3333ab1378309c3416f4bdcf Mon Sep 17 00:00:00 2001 From: Travis Jette Date: Tue, 22 Aug 2017 20:00:22 -0600 Subject: [PATCH 3/4] have the tests working now --- .../src/functions/getActiveUsers.js | 18 ++++++------- .../src/functions/getMostExpensiveProduct.js | 17 ++++++------- .../src/functions/getOrderInfo.js | 25 ++++++++++--------- .../src/functions/getProductById.js | 2 +- .../src/functions/getUserById.js | 2 +- 5 files changed, 32 insertions(+), 32 deletions(-) diff --git a/data-and-functions-1/src/functions/getActiveUsers.js b/data-and-functions-1/src/functions/getActiveUsers.js index 0d97aae..0897458 100644 --- a/data-and-functions-1/src/functions/getActiveUsers.js +++ b/data-and-functions-1/src/functions/getActiveUsers.js @@ -1,15 +1,15 @@ const getActiveUsers = (DATA, id) => { - if (DATA == null || DATA.users == null || id == null) { + if (DATA == null || DATA.users == null) { return null + } else { + const activeUsers = [] + DATA.users.forEach((user) => { + if (user.accountActive === true) { + activeUsers.push(user) + } + }) + return activeUsers } - - const activeUsers = [] - DATA.users.forEach((user) => { - if (user.accountActive === true) { - activeUsers.push(user) - } - }) - return activeUsers } export default getActiveUsers diff --git a/data-and-functions-1/src/functions/getMostExpensiveProduct.js b/data-and-functions-1/src/functions/getMostExpensiveProduct.js index df9dbce..742e60b 100644 --- a/data-and-functions-1/src/functions/getMostExpensiveProduct.js +++ b/data-and-functions-1/src/functions/getMostExpensiveProduct.js @@ -2,16 +2,15 @@ const getMostExpensiveProduct = (DATA) => { if (DATA == null || DATA.products == null) { return null + } else { + let mostExpensive = DATA.products[0] + DATA.products.forEach((p) => { + if (mostExpensive === null || mostExpensive.price < p.price) { + mostExpensive = p + } + }) + return mostExpensive } - - let mostExpensive - - DATA.products.forEach((p) => { - if (mostExpensive === null || mostExpensive.price < p.price) { - mostExpensive = p - } - }) - return mostExpensive } export default getMostExpensiveProduct diff --git a/data-and-functions-1/src/functions/getOrderInfo.js b/data-and-functions-1/src/functions/getOrderInfo.js index deaeed9..71741a1 100644 --- a/data-and-functions-1/src/functions/getOrderInfo.js +++ b/data-and-functions-1/src/functions/getOrderInfo.js @@ -1,20 +1,21 @@ import getUserById from './getUserById' import getProductById from './getProductById' -const getOrderInfo = (DATA, id) => { - if (DATA == null || DATA.orders == null || id == null) { +const getOrderInfo = (DATA) => { + if (DATA == null || DATA.orders == null) { return null + } else { + const orderInfoArr = [] + DATA.orders.forEach((o) => { + const orderInfo = { + orderId: o.id, + userName: getUserById(DATA, o.userId).name, + price: getProductById(DATA, o.productId).price + } + orderInfoArr.push(orderInfo) + }) + return orderInfoArr } - const orderInfoArr = [] - DATA.orders.forEach((o) => { - const orderInfo = { - orderId: o.id, - userName: getUserById(o.userName), - price: getProductById(o.productId).name - } - orderInfoArr.push(orderInfo) - }) - return orderInfoArr } export default getOrderInfo diff --git a/data-and-functions-1/src/functions/getProductById.js b/data-and-functions-1/src/functions/getProductById.js index 386da30..a63ffe3 100644 --- a/data-and-functions-1/src/functions/getProductById.js +++ b/data-and-functions-1/src/functions/getProductById.js @@ -4,7 +4,7 @@ const getProductById = (DATA, id) => { } let product DATA.products.forEach((p) => { - if (product.id === id) { + if (p.id === id) { product = p } }) diff --git a/data-and-functions-1/src/functions/getUserById.js b/data-and-functions-1/src/functions/getUserById.js index 8aad7f5..a505dd4 100644 --- a/data-and-functions-1/src/functions/getUserById.js +++ b/data-and-functions-1/src/functions/getUserById.js @@ -5,7 +5,7 @@ const getUserById = (DATA, id) => { let user - DATA.users.forEach((u, id) => { + DATA.users.forEach((u) => { if (u.id === id) { user = u } From 37bb18f96098e80486b47ebe9979fcbed27c7ab9 Mon Sep 17 00:00:00 2001 From: Travis Jette Date: Wed, 30 Aug 2017 14:33:43 -0600 Subject: [PATCH 4/4] trying to get addOrder function to pass --- .../src/functions/getMostExpensiveProduct.js | 8 ++++++++ data-and-functions-3/src/functions/addOrder.js | 15 +++++++++++++++ data-and-functions-3/src/functions/addProduct.js | 12 ++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 data-and-functions-3/src/functions/addOrder.js create mode 100644 data-and-functions-3/src/functions/addProduct.js diff --git a/data-and-functions-1/src/functions/getMostExpensiveProduct.js b/data-and-functions-1/src/functions/getMostExpensiveProduct.js index 742e60b..6a3ac05 100644 --- a/data-and-functions-1/src/functions/getMostExpensiveProduct.js +++ b/data-and-functions-1/src/functions/getMostExpensiveProduct.js @@ -14,3 +14,11 @@ const getMostExpensiveProduct = (DATA) => { } export default getMostExpensiveProduct + +// return data.products.reduce((mostExpensive, p) => { +// if (p.price > mostExpensive.price) { +// return p +// } else { +// return mostExpensive +// } +// }) diff --git a/data-and-functions-3/src/functions/addOrder.js b/data-and-functions-3/src/functions/addOrder.js new file mode 100644 index 0000000..dedad6c --- /dev/null +++ b/data-and-functions-3/src/functions/addOrder.js @@ -0,0 +1,15 @@ + +const addOrder = (DATA, order) => { + if (!DATA || !DATA.orders || !order || typeof order !== 'object' || order.id === true) { + throw new Error('Error') + } + const getNewId = DATA.orders.id.length + 1 + + const newOrder = { id: getNewId, userId: 1, products: 1 } + + DATA.orders.push(newOrder) + + return newOrder +} + +export default addOrder diff --git a/data-and-functions-3/src/functions/addProduct.js b/data-and-functions-3/src/functions/addProduct.js new file mode 100644 index 0000000..955c922 --- /dev/null +++ b/data-and-functions-3/src/functions/addProduct.js @@ -0,0 +1,12 @@ + +const addProduct = (DATA, product) => { + if (!DATA || !DATA.products || !product || typeof product !== 'object' ) { + throw new Error('Error') + } + + if (product.id === true) { + throw new Error('error') + } +} + +export default addProduct