From 23e3d1b0572fd761d15eee0db406a341251f551d Mon Sep 17 00:00:00 2001 From: montuckymike Date: Tue, 22 Aug 2017 22:40:53 -0700 Subject: [PATCH 1/2] completed tests --- .../src/functions/getActiveUsers.js | 15 ++++++++++++++ .../src/functions/getMostExpensiveProduct.js | 15 ++++++++++++++ .../src/functions/getOrderInfo.js | 20 +++++++++++++++++++ .../src/functions/getProductById.js | 8 ++++++++ .../src/functions/getUserById.js | 8 ++++++++ 5 files changed, 66 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..24e46a2 --- /dev/null +++ b/data-and-functions-1/src/functions/getActiveUsers.js @@ -0,0 +1,15 @@ + +const getActiveUsers = (data) => { + if (data == null || data.users == null) { + return null + } else { + const activeUsers = [] + data.users.forEach((u) => { + if (u.accountActive === true) { + activeUsers.push(u) + } + }) + 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..77c9cd8 --- /dev/null +++ b/data-and-functions-1/src/functions/getMostExpensiveProduct.js @@ -0,0 +1,15 @@ +const getMostExpensiveProduct = (data) => { + if (data == null || data.products == null) { + return null + } else { + let mostExpensiveProduct = data.products[0] + data.products.forEach((p) => { + if (p.price > mostExpensiveProduct.price) { + mostExpensiveProduct = p + } + }) + return mostExpensiveProduct + } +} + +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..c3212ba --- /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) => { + if (data == null || data.orders == null) { + return null + } else { + const orders = [] + data.orders.forEach((o) => { + orders.push({ + orderId: o.id, + price: getProductById(data, o.productId).price, + userName: getUserById(data, o.userId).name + }) + }) + return orders + } +} + +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..b1f0ed1 --- /dev/null +++ b/data-and-functions-1/src/functions/getProductById.js @@ -0,0 +1,8 @@ +const getProductById = (data, id) => { + if (data == null || data.products == null || id == null) { + return null + } else { + return data.products.find((p) => p.id === id) + } +} +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..a274154 --- /dev/null +++ b/data-and-functions-1/src/functions/getUserById.js @@ -0,0 +1,8 @@ +const getUserById = (data, id) => { + if (data == null || data.users == null || id == null) { + return null + } else { + return data.users.find((u) => u.id === id) + } +} +export default getUserById From 314854a9486de29b67ae1938891e43408652df98 Mon Sep 17 00:00:00 2001 From: montuckymike Date: Tue, 22 Aug 2017 23:11:58 -0700 Subject: [PATCH 2/2] trying to add everything --- .../src/functions/getProductById.js | 9 +++++++++ .../src/functions/getProductsForOrder.js | 18 ++++++++++++++++++ .../src/functions/getTotalPriceForOrder.js | 18 ++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 data-and-functions-2/src/functions/getProductById.js create mode 100644 data-and-functions-2/src/functions/getProductsForOrder.js create mode 100644 data-and-functions-2/src/functions/getTotalPriceForOrder.js diff --git a/data-and-functions-2/src/functions/getProductById.js b/data-and-functions-2/src/functions/getProductById.js new file mode 100644 index 0000000..7e2c3d1 --- /dev/null +++ b/data-and-functions-2/src/functions/getProductById.js @@ -0,0 +1,9 @@ +const getProductById = (data, id) => { + if (data == null || data.products == null || id == null) { + return null + } else { + return data.products.find((p) => p.id === id) + } +} + +export default getProductById diff --git a/data-and-functions-2/src/functions/getProductsForOrder.js b/data-and-functions-2/src/functions/getProductsForOrder.js new file mode 100644 index 0000000..4dc518c --- /dev/null +++ b/data-and-functions-2/src/functions/getProductsForOrder.js @@ -0,0 +1,18 @@ +import getProductById from './getProductById' + +const getProductsForOrder = (data, id) => { + if (data == null || id == null || data.orders == null) { + throw new Error('Do not have data or ID') + } + const order = data.orders.find((o) => o.id === id) + if (order === undefined) { + return null + } + const productArray = [] + order.products.forEach((p) => { + productArray.push(getProductById(data, p)) + }) + return productArray +} + +export default getProductsForOrder diff --git a/data-and-functions-2/src/functions/getTotalPriceForOrder.js b/data-and-functions-2/src/functions/getTotalPriceForOrder.js new file mode 100644 index 0000000..7a5da51 --- /dev/null +++ b/data-and-functions-2/src/functions/getTotalPriceForOrder.js @@ -0,0 +1,18 @@ +import getProductById from './getProductById' + +const getTotalPriceForOrder = (data, id) => { + if (data == null || id == null || data.orders == null) { + throw new Error('There are no orders') + } + const order = data.orders.find((o) => o.id === id) + if (order === undefined) { + return null + } + let totalOrderPrice = 0 + order.products.forEach((p) => { + totalOrderPrice += getProductById(data, p).price + }) + return totalOrderPrice +} + +export default getTotalPriceForOrder