Initial commit
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function (session, defaultTtl) {
|
||||
var Store = session.Store;
|
||||
defaultTtl = defaultTtl || 3600;
|
||||
|
||||
function AdapterStore(options) {
|
||||
var that = this;
|
||||
|
||||
this.adapter = options.adapter;
|
||||
|
||||
options = options || {};
|
||||
Store.call(this, options);
|
||||
|
||||
}
|
||||
|
||||
// Object.getPrototypeOf(AdapterStore.prototype) ?
|
||||
// AdapterStore.prototype.__proto__ = Store.prototype;
|
||||
AdapterStore.prototype = Object.create(Store.prototype);
|
||||
|
||||
/**
|
||||
* Attempt to fetch session by the given `sid`.
|
||||
*
|
||||
* @param {String} sid
|
||||
* @param {Function} fn
|
||||
* @api public
|
||||
*/
|
||||
|
||||
AdapterStore.prototype.get = function (sid, fn) {
|
||||
|
||||
this.adapter.getSession(sid, function (obj) {
|
||||
if (obj) {
|
||||
if (fn) return fn(null, obj);
|
||||
} else {
|
||||
if (fn) return fn();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Commit the given `sess` object associated with the given `sid`.
|
||||
*
|
||||
* @param {String} sid
|
||||
* @param {Session} sess
|
||||
* @param {Function} fn
|
||||
* @api public
|
||||
*/
|
||||
AdapterStore.prototype.set = function (sid, ttl, sess, fn) {
|
||||
if (typeof ttl === 'object') {
|
||||
fn = sess;
|
||||
sess = ttl;
|
||||
ttl = defaultTtl;
|
||||
}
|
||||
|
||||
ttl = ttl || defaultTtl;
|
||||
this.adapter.setSession(sid, ttl, sess, function () {
|
||||
if (fn) fn.apply(this, arguments);
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Destroy the session associated with the given `sid`.
|
||||
*
|
||||
* @param {String} sid
|
||||
* @api public
|
||||
*/
|
||||
|
||||
AdapterStore.prototype.destroy = function (sid, fn) {
|
||||
this.adapter.destroySession(sid, fn);
|
||||
};
|
||||
|
||||
return AdapterStore;
|
||||
};
|
||||
Reference in New Issue
Block a user