models.sequelize.transaction(function(t) {
var tranArray = [];
if (!_.isUndefined(args.categories_id)) {
var categories_idArray = args.categories_id.split(',');
tranArray.push(models.Categories_product.destroy({
where: {
product_id: product_id
}
}, {
transaction: t
}));
categories_idArray.forEach(function(categories_id) {
tranArray.push(models.Categories_product.create({
product_id: product_id,
categories_id: categories_id
}, {
transaction: t
}));
});
}
if (_.isUndefined(areacode)) {
tranArray.push(models.Products.update(args, {
where: {
id: product_id
}
}));
} else {
tranArray.push(models.Product_lang_details.update(args,
where: {
product_id: product_id,
areacode: areacode
}));
tranArray.push(models.Product_shipping_to.update({
freezeTableName: args.freezeTableName
},
where: {
product_id: product_id,
areacode: areacode
}));
}
return Promise.all(tranArray);
}).then(function() {
return utils.response(res, 200, {
'message': 'update product successful!'
});
}).catch(function(error) {
logger.error('product update fall', error);
return utils.responseError(res, 500, {
'message': 'format error'
});
});
###