summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
Diffstat (limited to 'db')
-rw-r--r--db/index.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/db/index.js b/db/index.js
index d74e7b8..fed1670 100644
--- a/db/index.js
+++ b/db/index.js
@@ -15,11 +15,40 @@ var SKU = bookshelf.Model.extend({ tableName: 'cw_skus' })
/* METHODS */
+/*
db.products = function () {
return Product.query(function(qb){
qb.orderBy("product_name", "asc")
}).fetchAll()
}
+*/
+
+db.products = function () {
+ return new Promise(function (resolve, reject){
+ SKU.fetchAll().then(function(skus){
+ // sku_merchant_sku_id
+ Product.fetchAll().then(function(products){
+ var product_name_lookup = {}
+ products.map(function(product){
+ product_name_lookup[ product.get('product_id') ] = product.get('product_name')
+ })
+ var mapped_products = skus.map(function(sku){
+ var name = product_name_lookup[ sku.get('sku_product_id') ] || "Unknown"
+ return [name.toUpperCase(), sku, name]
+ }).sort(function(a,b){
+ return a[0] < b[0] ? -1 : a[0] === b[0] ? 0 : 1
+ }).map(function(pair){
+ var sku = pair[1]
+ return {
+ product_merchant_product_id: sku.get('sku_merchant_sku_id'),
+ product_name: pair[2],
+ }
+ })
+ resolve(mapped_products)
+ })
+ })
+ })
+}
db.ordersBySku = function (sku) {
return new Promise(function (resolve, reject){