Importing todo-single app for Lab 6.5
This commit is contained in:
131
todo-single/controllers/items.js
Normal file
131
todo-single/controllers/items.js
Normal file
@@ -0,0 +1,131 @@
|
||||
|
||||
var model = undefined;
|
||||
|
||||
exports.context = function(server, path, itemsModel) {
|
||||
if (!server)
|
||||
done('has to provide a restify server object');
|
||||
|
||||
var context = "/items";
|
||||
if (path)
|
||||
context = path + context;
|
||||
|
||||
server.get(context + '/', this.list);
|
||||
server.get(context + '/:id', this.read);
|
||||
server.get(context + '-count', this.count);
|
||||
server.post(context + '/', this.save);
|
||||
server.del(context + '/:id', this.destroy);
|
||||
|
||||
model = itemsModel;
|
||||
};
|
||||
|
||||
exports.list = function(req, res, next) {
|
||||
var page_no = req.query.page || 1;
|
||||
var sortField = req.query.sortFields || "id";
|
||||
var sortDirection = req.query.sortDirections || "asc";
|
||||
|
||||
model.listAll(page_no, sortField, sortDirection, function(err, items) {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
}
|
||||
else {
|
||||
if (items) {
|
||||
model.countAll(function(err, n) {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
}
|
||||
else {
|
||||
if (n) {
|
||||
var page = {
|
||||
"currentPage" : page_no,
|
||||
"list" : items,
|
||||
"pageSize" : 10,
|
||||
"sortDirections" : sortDirection,
|
||||
"sortFields" : sortField,
|
||||
"totalResults" : n
|
||||
};
|
||||
res.json(page);
|
||||
next();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
res.send(err);
|
||||
}
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
exports.read = function(req, res, next) {
|
||||
var key = req.params.id;
|
||||
model.read(key, function(err, item) {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
}
|
||||
else {
|
||||
if (item) {
|
||||
res.json(item);
|
||||
next();
|
||||
}
|
||||
else {
|
||||
res.send(err);
|
||||
}
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
|
||||
exports.count = function(req, res, next) {
|
||||
model.countAll(function(err, n) {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
}
|
||||
else {
|
||||
var page = {
|
||||
count: n
|
||||
};
|
||||
res.json(page)
|
||||
next();
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
|
||||
exports.save = function(req, res, next) {
|
||||
if (req.params.id) {
|
||||
model.update(req.params.id, req.params.description, req.params.done, function(err, item) {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
}
|
||||
else {
|
||||
res.json(item);
|
||||
next();
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
model.create(req.params.description, req.params.done, function(err, item) {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
}
|
||||
else {
|
||||
res.json(item);
|
||||
next();
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
exports.destroy = function(req, res, next) {
|
||||
if (req.params.id) {
|
||||
model.destroy(req.params.id, function(err, item) {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
}
|
||||
else {
|
||||
res.json(item);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user