summaryrefslogtreecommitdiff
path: root/app/node_modules
diff options
context:
space:
mode:
authorSean Fridman <fridman@mail.sfsu.edu>2015-04-09 16:00:21 -0400
committerSean Fridman <fridman@mail.sfsu.edu>2015-04-09 16:00:21 -0400
commitc4d8ee7c431b3511bf26da68e952808b51d663c7 (patch)
treeec578ac8bb116883e7f942b146663375d11445c3 /app/node_modules
parent757f6992aea253b06cc4f65fa0dd7da71cf82135 (diff)
Add resource delete functionality to admin
Diffstat (limited to 'app/node_modules')
-rw-r--r--app/node_modules/okadminview/index.js15
-rw-r--r--app/node_modules/okresource/index.js12
2 files changed, 22 insertions, 5 deletions
diff --git a/app/node_modules/okadminview/index.js b/app/node_modules/okadminview/index.js
index 987fe51..a376df5 100644
--- a/app/node_modules/okadminview/index.js
+++ b/app/node_modules/okadminview/index.js
@@ -175,6 +175,21 @@ function OKAdminView(options) {
}
});
+ router.delete('/:type/:id/', function deleteResource(req, res, next) {
+ var type = req.params.type;
+ var id = req.params.id;
+ var resource = resourceCache.get(type, id);
+ if (!resource) {
+ errorHandler(req, res)(new Error('No such resource ' + type));
+ } else {
+ meta.get().then(function(metadata) {
+ resource.destroy(id).then(function() {
+ res.redirect(303, '../..');
+ }).fail(errorHandler(req, res));
+ }).fail(errorHandler(req, res));
+ }
+ });
+
return router;
}
}
diff --git a/app/node_modules/okresource/index.js b/app/node_modules/okresource/index.js
index febd1d5..0e8498f 100644
--- a/app/node_modules/okresource/index.js
+++ b/app/node_modules/okresource/index.js
@@ -91,14 +91,16 @@ OKResource.prototype.create = function(data) {
});
};
-OKResource.prototype.destroy = function(data) {
- data = data || {};
- var id = data[this.idField];
+OKResource.prototype.destroy = function(id) {
+ var db = this._db;
+ var type = this.type;
+ var query = {};
+ query[this.idField] = id;
return Q.promise(function(resolve, reject) {
if (!id) {
- reject(new Error('Data does not contain ID property'));
+ reject(new Error('No ID given'));
} else {
- this._db.remove(this.type, data.id, data).then(resolve).fail(reject);
+ db.remove(type, query).then(resolve).fail(reject);
}
});
};