diff options
Diffstat (limited to 'db/index.js')
| -rw-r--r-- | db/index.js | 45 |
1 files changed, 38 insertions, 7 deletions
diff --git a/db/index.js b/db/index.js index 6124e31..a13ac8e 100644 --- a/db/index.js +++ b/db/index.js @@ -1,5 +1,6 @@ var db = module.exports +var _ = require('lodash') var connection = require("./bookshelf") var bookshelf = connection.bookshelf var knex = connection.knex @@ -12,15 +13,45 @@ var Order = bookshelf.Model.extend({ tableName: 'cw_orders' }) var Product = bookshelf.Model.extend({ tableName: 'cw_products' }) var SKU = bookshelf.Model.extend({ tableName: 'cw_skus' }) -/* PICTURES */ +/* METHODS */ -db.createUser = function(data){ - return new db.User(data).save() -} -db.getUsers = function (callback) { - return User.query(function(qb){ - qb.orderBy("id", "desc") +db.products = function () { + return Product.query(function(qb){ + qb.orderBy("product_name", "asc") }).fetchAll() } +db.ordersBySku = function (sku) { + return new Promise(function (resolve, reject){ + console.log(sku) + SKU.where('sku_merchant_sku_id', sku).fetchAll().then(function(skus){ + if (! skus.length) { + return resolve([]) + } + var sku = skus.at(0) + var sku_id = sku.get('sku_id') + OrderSKU.where('ordersku_sku', sku_id).fetchAll({ columns: 'ordersku_order_id' }).then(function(ordersku_ids){ + var order_ids = ordersku_ids.map(function(el){ return el.get('ordersku_order_id') }) + Order.where('order_id', 'in', order_ids).fetchAll().then(function(orders){ + resolve(orders) + }) + }) + }) + }) +} + +/* + +# cw_products +# 0 id 1 sku 2 product_name + +# cw_skus +# 0 sku_id 1 sku 2 product_id + +# cw_orders +# 0 order_id 1 date 2 status 3 customer_id + +# cw_order_skus +# 0 id 1 order_id 2 sku_id +*/
\ No newline at end of file |
