- Initial commit... A DB, some routes, and basic authentication routines...
This commit is contained in:
116
routes/sales.js
Normal file
116
routes/sales.js
Normal file
@@ -0,0 +1,116 @@
|
||||
/**
|
||||
* Module Dependencies
|
||||
*/
|
||||
const errors = require('restify-errors');
|
||||
|
||||
/**
|
||||
* Model Schema
|
||||
*/
|
||||
const Sale = require('../models/sale');
|
||||
|
||||
module.exports = function(server) {
|
||||
server.post('/sales', (req, res, next) => {
|
||||
if (!req.is('application/json')) {
|
||||
return next(
|
||||
new errors.InvalidContentError("Expects 'application/json'"),
|
||||
);
|
||||
}
|
||||
|
||||
let data = req.body || {};
|
||||
|
||||
let sale = new Sale(data);
|
||||
sale.save(function(err) {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
return next(new errors.InternalError(err.message));
|
||||
next();
|
||||
}
|
||||
|
||||
res.send(201);
|
||||
next();
|
||||
});
|
||||
});
|
||||
|
||||
server.get('/sales', (req, res, next) => {
|
||||
Sale.apiQuery(req.params, function(err, docs) {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
return next(
|
||||
new errors.InvalidContentError(err.errors.name.message),
|
||||
);
|
||||
}
|
||||
|
||||
res.send(docs);
|
||||
next();
|
||||
});
|
||||
});
|
||||
|
||||
server.get('/sales/:sale_id', (req, res, next) => {
|
||||
Sale.findOne({ _id: req.params.sale_id }, function(err, doc) {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
return next(
|
||||
new errors.InvalidContentError(err.errors.name.message),
|
||||
);
|
||||
}
|
||||
|
||||
res.send(doc);
|
||||
next();
|
||||
});
|
||||
});
|
||||
|
||||
server.put('/sales/:sale_id', (req, res, next) => {
|
||||
if (!req.is('application/json')) {
|
||||
return next(
|
||||
new errors.InvalidContentError("Expects 'application/json'"),
|
||||
);
|
||||
}
|
||||
|
||||
let data = req.body || {};
|
||||
|
||||
if (!data._id) {
|
||||
data = Object.assign({}, data, { _id: req.params.sale_id });
|
||||
}
|
||||
|
||||
Sale.findOne({ _id: req.params.sale_id }, function(err, doc) {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
return next(
|
||||
new errors.InvalidContentError(err.errors.name.message),
|
||||
);
|
||||
} else if (!doc) {
|
||||
return next(
|
||||
new errors.ResourceNotFoundError(
|
||||
'The resource you requested could not be found.',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Sale.update({ _id: data._id }, data, function(err) {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
return next(
|
||||
new errors.InvalidContentError(err.errors.name.message),
|
||||
);
|
||||
}
|
||||
|
||||
res.send(200, data);
|
||||
next();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
server.del('/sales/:sale_id', (req, res, next) => {
|
||||
Sale.deleteOne({ _id: req.params.sale_id }, function(err) {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
return next(
|
||||
new errors.InvalidContentError(err.errors.name.message),
|
||||
);
|
||||
}
|
||||
|
||||
res.send(204);
|
||||
next();
|
||||
});
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user