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..0897458 --- /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) { + return null + } else { + 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..6a3ac05 --- /dev/null +++ b/data-and-functions-1/src/functions/getMostExpensiveProduct.js @@ -0,0 +1,24 @@ + +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 + } +} + +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-1/src/functions/getOrderInfo.js b/data-and-functions-1/src/functions/getOrderInfo.js new file mode 100644 index 0000000..71741a1 --- /dev/null +++ b/data-and-functions-1/src/functions/getOrderInfo.js @@ -0,0 +1,21 @@ +import getUserById from './getUserById' +import getProductById from './getProductById' + +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 + } +} + +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..a63ffe3 --- /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 (p.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 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