bouquins/lib/endpoint/author.js
2014-01-22 19:38:47 +01:00

62 lines
1.4 KiB
JavaScript

/**
* Endpoint author.
*/
var Endpoint = require('./endpoint.js');
function Author() {
Endpoint.call(this);
this.authorId = null;
}
Author.prototype = Object.create(Endpoint.prototype, {
bind: {
value: function(action, callback) {
switch (action.name) {
case 'show':
action.resId = this.authorId;
action.loadResource = function(resId, callback) {
logger.debug('loading author ' + resId);
// TODO load from db
callback(null, {
id: resId,
name: 'Test test'
});
};
callback(null, action);
break;
case 'list':
action.loadResources = function(onload, onend) {
//TODO load from bdd
onload(null, { id: 1, name: 'Homere' });
onload(null, { id: 2, name: 'Victor Hugo' });
onload(null, { id: 3, name: 'Frank Herbert' });
onend();
};
callback(null, action);
break;
default:
callback(new Error('action not implemented'));
}
},
enumerable: true,
configurable: true,
writable: true
},
targetCollection : {
value: function(pathname) {
var match = PATH_RE.exec(pathname);
logger.debug('pathname ' + pathname + ' => ' + match);
if (match.length > 2 && match[2]) {
// TODO check integer
this.authorId = match[2];
return false;
}
return true;
},
enumerable: true,
configurable: true,
writable: true
}
});
exports = module.exports = new Author();