From 88899d697bae1b4220460dd6f6873cc2168d401f Mon Sep 17 00:00:00 2001 From: Hannah Hendrickson Date: Tue, 22 Aug 2017 12:39:22 -0600 Subject: [PATCH 1/5] getproductbyid function passing --- .../src/functions/getActiveUsers.js | 15 ++++++++ .../src/functions/getMostExpensiveProduct.js | 15 ++++++++ .../src/functions/getOrderInfo.js | 24 ++++++++++++ .../src/functions/getProductById.js | 37 +++++++++++++++++++ .../src/functions/getUsersById.js | 19 ++++++++++ 5 files changed, 110 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/getUsersById.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..3ee68c7 --- /dev/null +++ b/data-and-functions-1/src/functions/getActiveUsers.js @@ -0,0 +1,15 @@ +import DATA from '../DATA' + +const getActiveUsers = () => { + let 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..3c36c39 --- /dev/null +++ b/data-and-functions-1/src/functions/getMostExpensiveProduct.js @@ -0,0 +1,15 @@ +import DATA from '../DATA' + +const getMostExpensiveProduct = () => { + let mostExpProd // = undefined + + for (let i = 0; i < DATA.products.length; i++) { + if (mostExpProd === undefined || DATA.products[i].price > mostExpProd.price) { + mostExpProd = DATA.products[i] + } + } + + return mostExpProd +} + +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..334d63c --- /dev/null +++ b/data-and-functions-1/src/functions/getOrderInfo.js @@ -0,0 +1,24 @@ +import DATA from '../DATA' + +const getOrderInfo = () => { + let orderInfoArr = [] + // let userName + // let price + const orderInfo = { + orderId: orderId, + userName: userName, + price: price + } + DATA.orders.forEach((order) => { + if (order.id && order.userId && order.productId > 0) { + let orderId = order.id + let userName = getUserByID(order.userId).name + let price = getProductByID(order.productId).price + } + 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..85fd840 --- /dev/null +++ b/data-and-functions-1/src/functions/getProductById.js @@ -0,0 +1,37 @@ +import DATA from '../DATA' + +const getProductByID = (DATA, id) => { + if (DATA == null || DATA.products == null || id == null) { + return null + } + let productFound + + for (let i = 0; i < DATA.products.length; i++) { + const currentProduct = DATA.products[i] + + if (currentProduct.id === id) { + productFound = currentProduct + } + } + return productFound +} + +export default getProductByID + +// const getUsersById = (DATA, id) => { +// if (DATA == null || DATA.users == null || id == null) { +// return null +// } +// +// let foundUser +// +// for (let i = 0; i < DATA.users.length; i++) { +// const currentUser = DATA.users[i] +// +// if (currentUser.id === id) { +// foundUser = currentUser +// } +// } +// return foundUser +// } +// export default getUsersById diff --git a/data-and-functions-1/src/functions/getUsersById.js b/data-and-functions-1/src/functions/getUsersById.js new file mode 100644 index 0000000..09a3ecd --- /dev/null +++ b/data-and-functions-1/src/functions/getUsersById.js @@ -0,0 +1,19 @@ +import DATA from '../DATA' + +const getUsersById = (DATA, id) => { + if (DATA == null || DATA.users == null || id == null) { + return null + } + + let foundUser + + for (let i = 0; i < DATA.users.length; i++) { + const currentUser = DATA.users[i] + + if (currentUser.id === id) { + foundUser = currentUser + } + } + return foundUser +} +export default getUsersById From d125d0e2d7687518085810f0eac8b971cca497be Mon Sep 17 00:00:00 2001 From: Hannah Hendrickson Date: Tue, 22 Aug 2017 13:33:10 -0600 Subject: [PATCH 2/5] get orderInfo the only one not passing yet --- .../src/functions/getActiveUsers.js | 8 ++++- .../src/functions/getMostExpensiveProduct.js | 7 +++- .../src/functions/getOrderInfo.js | 32 +++++++++++-------- .../src/functions/getProductById.js | 18 +---------- .../{getUsersById.js => getUserById.js} | 6 ++-- 5 files changed, 36 insertions(+), 35 deletions(-) rename data-and-functions-1/src/functions/{getUsersById.js => getUserById.js} (80%) diff --git a/data-and-functions-1/src/functions/getActiveUsers.js b/data-and-functions-1/src/functions/getActiveUsers.js index 3ee68c7..0d2bcab 100644 --- a/data-and-functions-1/src/functions/getActiveUsers.js +++ b/data-and-functions-1/src/functions/getActiveUsers.js @@ -1,6 +1,10 @@ import DATA from '../DATA' -const getActiveUsers = () => { +const getActiveUsers = (DATA) => { + if (DATA == null || DATA.users == null) { + return null + } + let activeUsers = [] DATA.users.forEach((user) => { @@ -13,3 +17,5 @@ const getActiveUsers = () => { } export default getActiveUsers + +// passes diff --git a/data-and-functions-1/src/functions/getMostExpensiveProduct.js b/data-and-functions-1/src/functions/getMostExpensiveProduct.js index 3c36c39..2016ea6 100644 --- a/data-and-functions-1/src/functions/getMostExpensiveProduct.js +++ b/data-and-functions-1/src/functions/getMostExpensiveProduct.js @@ -1,6 +1,9 @@ import DATA from '../DATA' -const getMostExpensiveProduct = () => { +const getMostExpensiveProduct = (DATA) => { + if (DATA == null || DATA.products == null) { + return null + } let mostExpProd // = undefined for (let i = 0; i < DATA.products.length; i++) { @@ -13,3 +16,5 @@ const getMostExpensiveProduct = () => { } export default getMostExpensiveProduct + +// passes diff --git a/data-and-functions-1/src/functions/getOrderInfo.js b/data-and-functions-1/src/functions/getOrderInfo.js index 334d63c..51a0014 100644 --- a/data-and-functions-1/src/functions/getOrderInfo.js +++ b/data-and-functions-1/src/functions/getOrderInfo.js @@ -1,22 +1,26 @@ import DATA from '../DATA' +import getProductById from './getProductById' +import getUserById from './getUserById' -const getOrderInfo = () => { - let orderInfoArr = [] - // let userName - // let price - const orderInfo = { - orderId: orderId, - userName: userName, - price: price +const getOrderInfo = (DATA, orderId) => { + if (DATA == null || DATA.users == null || orderId == null) { + return null } - DATA.orders.forEach((order) => { - if (order.id && order.userId && order.productId > 0) { - let orderId = order.id - let userName = getUserByID(order.userId).name - let price = getProductByID(order.productId).price + let orderInfoArr = [] + + for (let i = 0; i < DATA.orders.length; i++) { + const orderInfo = { + orderId: orderId, + userName: userName, + price: price + } + if (DATA.orders.id && DATA.orders.userId && DATA.orders.productId > 0) { + let orderId = DATA.orders.id + let userName = getUserById(DATA.orders.userId).name + let price = getProductById(DATA.order.productId).price } orderInfoArr.push(orderInfo) - }) + } return orderInfoArr } diff --git a/data-and-functions-1/src/functions/getProductById.js b/data-and-functions-1/src/functions/getProductById.js index 85fd840..fc8639b 100644 --- a/data-and-functions-1/src/functions/getProductById.js +++ b/data-and-functions-1/src/functions/getProductById.js @@ -18,20 +18,4 @@ const getProductByID = (DATA, id) => { export default getProductByID -// const getUsersById = (DATA, id) => { -// if (DATA == null || DATA.users == null || id == null) { -// return null -// } -// -// let foundUser -// -// for (let i = 0; i < DATA.users.length; i++) { -// const currentUser = DATA.users[i] -// -// if (currentUser.id === id) { -// foundUser = currentUser -// } -// } -// return foundUser -// } -// export default getUsersById +//passes diff --git a/data-and-functions-1/src/functions/getUsersById.js b/data-and-functions-1/src/functions/getUserById.js similarity index 80% rename from data-and-functions-1/src/functions/getUsersById.js rename to data-and-functions-1/src/functions/getUserById.js index 09a3ecd..204da9e 100644 --- a/data-and-functions-1/src/functions/getUsersById.js +++ b/data-and-functions-1/src/functions/getUserById.js @@ -1,6 +1,6 @@ import DATA from '../DATA' -const getUsersById = (DATA, id) => { +const getUserById = (DATA, id) => { if (DATA == null || DATA.users == null || id == null) { return null } @@ -16,4 +16,6 @@ const getUsersById = (DATA, id) => { } return foundUser } -export default getUsersById +export default getUserById + +// passes From 97c1c954970fd5c32a0a1f4b955404c0fa17d2ad Mon Sep 17 00:00:00 2001 From: Hannah Hendrickson Date: Wed, 23 Aug 2017 09:53:00 -0600 Subject: [PATCH 3/5] cannot get the getOrderInfo or the getTotalPriceForOrder to work still but the rest are finished in 1 and 2 --- .../src/functions/getOrderInfo.js | 13 +++--- .../src/functions/getProductsForOrder.js | 42 +++++++++++++++++++ .../src/functions/getTotalPriceForOrder.js | 23 ++++++++++ 3 files changed, 72 insertions(+), 6 deletions(-) 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-1/src/functions/getOrderInfo.js b/data-and-functions-1/src/functions/getOrderInfo.js index 51a0014..504f867 100644 --- a/data-and-functions-1/src/functions/getOrderInfo.js +++ b/data-and-functions-1/src/functions/getOrderInfo.js @@ -9,17 +9,18 @@ const getOrderInfo = (DATA, orderId) => { let orderInfoArr = [] for (let i = 0; i < DATA.orders.length; i++) { - const orderInfo = { - orderId: orderId, - userName: userName, - price: price - } if (DATA.orders.id && DATA.orders.userId && DATA.orders.productId > 0) { let orderId = DATA.orders.id let userName = getUserById(DATA.orders.userId).name let price = getProductById(DATA.order.productId).price + let orderInfo = { + orderId: orderId, + userName: userName, + price: price + } + orderInfoArr.push(orderInfo) } - orderInfoArr.push(orderInfo) + } return orderInfoArr 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..92af235 --- /dev/null +++ b/data-and-functions-2/src/functions/getProductsForOrder.js @@ -0,0 +1,42 @@ +import DATA from '../DATA' + +const getProductsForOrder = (DATA, id) => { + if (DATA == null || DATA.products == null || id == null) { + throw new Error(('something is a little hairy here...')) + } + + let foundOrder + + for (let i = 0; i < DATA.orders.length; i++) { + const currentOrder = DATA.orders[i] + + if (currentOrder.id === id) { + foundOrder = currentOrder + } + } + if (!foundOrder) { + return null + } + + const currentProductId = foundOrder.id + const productsArray = [] + + const getOrderById = (DATA, id) => { + for (let j = 0; j < DATA.products.length; j++) { + const currentProduct = DATA.products[j] + if (currentProduct.id === currentProductId) { + } + return currentProduct + } + } + + for (let i = 0; i < foundOrder.products.length; i++) { + let fetchedOrderId = getOrderById(DATA, id) + productsArray.push(fetchedOrderId) + } + return productsArray +} + +export default getProductsForOrder + +// passes 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..b4a3e67 --- /dev/null +++ b/data-and-functions-2/src/functions/getTotalPriceForOrder.js @@ -0,0 +1,23 @@ +import DATA from '../DATA' +import getProductsForOrder from './getProductsForOrder' + +const getTotalPriceForOrder = (DATA, orderId) => { + if (DATA == null || DATA.products == null || DATA.id == null) { + throw new Error(('DATA, products, or id is null')) + } + let orderProductsId + + for (let i = 0; i < DATA.orders.length; i++) { + const currentOrder = DATA.orders[i] + + if (currentOrder.id === id) { + orderProductsId = currentOrder + } + } + if (!orderProductsId) { + return null + } +// getProductsForOrder(DATA, orderId) +} + +export default getTotalPriceForOrder From a8370e2197285e01707eb2bbcab58539831ce254 Mon Sep 17 00:00:00 2001 From: Hannah Hendrickson Date: Wed, 23 Aug 2017 11:32:19 -0600 Subject: [PATCH 4/5] Fixed getOrderInfo, passes --- .../src/functions/getOrderInfo.js | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/data-and-functions-1/src/functions/getOrderInfo.js b/data-and-functions-1/src/functions/getOrderInfo.js index 504f867..dd5847b 100644 --- a/data-and-functions-1/src/functions/getOrderInfo.js +++ b/data-and-functions-1/src/functions/getOrderInfo.js @@ -2,27 +2,25 @@ import DATA from '../DATA' import getProductById from './getProductById' import getUserById from './getUserById' -const getOrderInfo = (DATA, orderId) => { - if (DATA == null || DATA.users == null || orderId == null) { +const getOrderInfo = (DATA) => { + if (DATA == null || DATA.orders == null) { return null } - let orderInfoArr = [] + const orderInfoArr = [] for (let i = 0; i < DATA.orders.length; i++) { - if (DATA.orders.id && DATA.orders.userId && DATA.orders.productId > 0) { - let orderId = DATA.orders.id - let userName = getUserById(DATA.orders.userId).name - let price = getProductById(DATA.order.productId).price - let orderInfo = { - orderId: orderId, - userName: userName, - price: price - } - orderInfoArr.push(orderInfo) - } + const currentOrder = DATA.orders[i] + const orderId = currentOrder.id + const userName = getUserById(DATA, currentOrder.userId).name + const price = getProductById(DATA, currentOrder.productId).price + const orderInfo = { + orderId: orderId, + userName: userName, + price: price + } + orderInfoArr.push(orderInfo) } - return orderInfoArr } From 27d274dfd4e70d8eb7987f5055d225d19f09d781 Mon Sep 17 00:00:00 2001 From: Hannah Hendrickson Date: Tue, 29 Aug 2017 20:19:31 -0600 Subject: [PATCH 5/5] still cannot get getTotalPriceForOrder working --- data-and-functions-1/src/functions/getOrderInfo.js | 2 ++ .../src/functions/getProductsForOrder.js | 2 +- .../src/functions/getTotalPriceForOrder.js | 14 ++++++-------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/data-and-functions-1/src/functions/getOrderInfo.js b/data-and-functions-1/src/functions/getOrderInfo.js index dd5847b..82df778 100644 --- a/data-and-functions-1/src/functions/getOrderInfo.js +++ b/data-and-functions-1/src/functions/getOrderInfo.js @@ -25,3 +25,5 @@ const getOrderInfo = (DATA) => { } export default getOrderInfo + +// passes diff --git a/data-and-functions-2/src/functions/getProductsForOrder.js b/data-and-functions-2/src/functions/getProductsForOrder.js index 92af235..d039ce9 100644 --- a/data-and-functions-2/src/functions/getProductsForOrder.js +++ b/data-and-functions-2/src/functions/getProductsForOrder.js @@ -2,7 +2,7 @@ import DATA from '../DATA' const getProductsForOrder = (DATA, id) => { if (DATA == null || DATA.products == null || id == null) { - throw new Error(('something is a little hairy here...')) + throw new Error(('something is a little hairy here in getProductsForOrder...')) } let foundOrder diff --git a/data-and-functions-2/src/functions/getTotalPriceForOrder.js b/data-and-functions-2/src/functions/getTotalPriceForOrder.js index b4a3e67..7522f55 100644 --- a/data-and-functions-2/src/functions/getTotalPriceForOrder.js +++ b/data-and-functions-2/src/functions/getTotalPriceForOrder.js @@ -1,23 +1,21 @@ -import DATA from '../DATA' import getProductsForOrder from './getProductsForOrder' const getTotalPriceForOrder = (DATA, orderId) => { if (DATA == null || DATA.products == null || DATA.id == null) { throw new Error(('DATA, products, or id is null')) } - let orderProductsId for (let i = 0; i < DATA.orders.length; i++) { const currentOrder = DATA.orders[i] + const totalPrice = getProductsForOrder(DATA, currentOrder.orderId).price - if (currentOrder.id === id) { - orderProductsId = currentOrder + if (currentOrder.orderId === orderId) { + return totalPrice + } + if (!currentOrder.orderId) { + return null } } - if (!orderProductsId) { - return null - } -// getProductsForOrder(DATA, orderId) } export default getTotalPriceForOrder