KeyValueModel: add API for listing keys
- Expose "keys()" at "GET /keys" - Add a dummy implementation for "iterateKeys" to serve a useful error message when the model is not attached correctly.
This commit is contained in:
parent
3dfd86f6ff
commit
88e4de5341
|
@ -16,6 +16,16 @@ module.exports = function(KeyValueModel) {
|
||||||
throwNotAttached(this.modelName, 'expire');
|
throwNotAttached(this.modelName, 'expire');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// TODO add api docs
|
||||||
|
KeyValueModel.keys = function(filter, options, callback) {
|
||||||
|
throwNotAttached(this.modelName, 'keys');
|
||||||
|
};
|
||||||
|
|
||||||
|
// TODO add api docs
|
||||||
|
KeyValueModel.iterateKeys = function(filter, options) {
|
||||||
|
throwNotAttached(this.modelName, 'iterateKeys');
|
||||||
|
};
|
||||||
|
|
||||||
KeyValueModel.setup = function() {
|
KeyValueModel.setup = function() {
|
||||||
KeyValueModel.base.setup.apply(this, arguments);
|
KeyValueModel.base.setup.apply(this, arguments);
|
||||||
|
|
||||||
|
@ -51,6 +61,15 @@ module.exports = function(KeyValueModel) {
|
||||||
],
|
],
|
||||||
http: { path: '/:key/expire', verb: 'put' },
|
http: { path: '/:key/expire', verb: 'put' },
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.remoteMethod('keys', {
|
||||||
|
accepts: {
|
||||||
|
arg: 'filter', type: 'object', required: false,
|
||||||
|
http: { source: 'query' },
|
||||||
|
},
|
||||||
|
returns: { arg: 'keys', type: ['string'], root: true },
|
||||||
|
http: { path: '/keys', verb: 'get' },
|
||||||
|
});
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -80,6 +80,20 @@ describe('KeyValueModel', function() {
|
||||||
.send({ ttl: 10 })
|
.send({ ttl: 10 })
|
||||||
.expect(404, done);
|
.expect(404, done);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('provides "keys(filter)" at "GET /keys"', function(done) {
|
||||||
|
CacheItem.set('list-key', AN_OBJECT_VALUE, function(err) {
|
||||||
|
if (err) return done(err);
|
||||||
|
request.get('/CacheItems/keys')
|
||||||
|
.send(AN_OBJECT_VALUE)
|
||||||
|
.end(function(err, res) {
|
||||||
|
if (err) return done(err);
|
||||||
|
if (res.body.error) return done(res.body.error);
|
||||||
|
expect(res.body).to.eql(['list-key']);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function setupAppAndCacheItem() {
|
function setupAppAndCacheItem() {
|
||||||
|
|
Loading…
Reference in New Issue