loopback/example/client-server/models.js

35 lines
778 B
JavaScript
Raw Normal View History

2014-02-19 19:44:16 +00:00
var loopback = require('../../');
2014-06-05 07:45:09 +00:00
var CartItem = exports.CartItem = loopback.PersistedModel.extend('CartItem', {
tax: { type: Number, default: 0.1 },
2014-02-19 19:44:16 +00:00
price: Number,
item: String,
qty: { type: Number, default: 0 },
cartId: Number,
2014-02-19 19:44:16 +00:00
});
CartItem.sum = function(cartId, callback) {
this.find({ where: { cartId: 1 }}, function(err, items) {
2014-02-19 19:44:16 +00:00
var total = items
.map(function(item) {
return item.total();
})
.reduce(function(cur, prev) {
return prev + cur;
}, 0);
callback(null, total);
});
};
2014-02-19 19:44:16 +00:00
CartItem.remoteMethod('sum',
2014-02-19 19:44:16 +00:00
{
accepts: { arg: 'cartId', type: 'number' },
returns: { arg: 'total', type: 'number' },
2014-02-19 19:44:16 +00:00
}
);
CartItem.prototype.total = function() {
return this.price * this.qty * 1 + this.tax;
};