diff options
Diffstat (limited to 'db/index.js')
| -rw-r--r-- | db/index.js | 29 |
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){ |
