Skip to content

Instantly share code, notes, and snippets.

@jorgeguberte
Last active December 23, 2015 03:48
Show Gist options
  • Save jorgeguberte/6575499 to your computer and use it in GitHub Desktop.
Save jorgeguberte/6575499 to your computer and use it in GitHub Desktop.
/*
* Model initialization
*/
var _ = require('underscore');
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017');
var Schema = mongoose.Schema;
var productSchema = new Schema({
name: String,
quantity: Number
});
var Product = mongoose.model('Product', productSchema);
/*
* GET product listing.
*/
//#TODO: Implement limit and offset.
exports.list = function (req, res) {
Product.find(function (err, results) {
if (!err) {
var outputResults = [];
results.forEach(function (result, i) {
var _result = {};
_result.id = result.id;
_result.name = result.name;
_result.quantity = result.quantity;
outputResults.push(_result);
});
res.send(outputResults);
} else {
res.send(500);
}
});
};
exports.get = function (req, res) {
var productId = req.params.id;
Product.find({
id: productId
}, function (err, result) {
if (!err) {
var output = {};
output.id = result.id;
output.name = result.name;
output.quantity = result.quantity;
res.send(output);
} else {
res.send(500);
}
});
};
exports.create = function (req, res) {
var output = {};
if (!req.body.name || !req.body.quantity) {
res.send(500);
} else {
var product = new Product({
name: req.body.name,
quantity: req.body.quantity
});
product.save(function (err, result) {
if (!err) {
var output = {};
output.id = result.id;
output.name = result.name;
output.quantity = result.quantity;
res.send(output);
} else {
res.send(500);
}
});
}
}
exports.update = function (req, res) {
var productId = req.params.id;
Product.find({
_id: productId
}, function (err, result) {
if (!err) {
Product.update({
_id: productId
}, {
$set: req.body
}, function (err) {
if (!err) {
res.send(200);
} else {
res.send(500);
}
});
} else {
res.send(500);
}
});
}
exports.delete = function (req, res) {
Product.remove({
_id: req.params.id
}, function (err) {
if (!err)
res.send(200);
else
res.send(500);
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment