refactor client models to use lokijs

This commit is contained in:
Eric Hulburd
2016-02-19 15:42:10 -06:00
parent c26b3b94c3
commit a84df34b55
6 changed files with 172 additions and 227 deletions

View File

@@ -1,12 +1,18 @@
import Loki from 'lokijs';
import LokiIndexedAdapter from 'loki/loki-indexed-adapter';
const DEFAULTS = {
adapter: ''
autosave: false
};
var databasable = {
accessDb: function(db_name, opts){
var databasable = this;
opts = Object.assign(Object.assign({}, DEFAULTS), opts || {});
opts = Object.assign(Object.assign({
persistenceMethod: 'adapter',
persistenceAdapter: new LokiIndexedAdapter(db_name)
}, DEFAULTS), opts || {});
return new Promise((fnResolve, fnReject){
if (!databasable.db) {
databasable.db = new Loki(db_name, opts);
@@ -26,9 +32,9 @@ var databasable = {
}
},
collection(collection_name, options){
collection: function(collection_name, options){
var databasable = this;
databasable.accessDb()
return databasable.accessDb()
.then((db)=>{
var collection = db.getCollection(collection_name)
if (!collection){
@@ -38,6 +44,22 @@ var databasable = {
});
}
rangeToLokiParams: function(attr, range){
var date_params = {};
if (range[0] !== undefined && range[0] !== undefined){
var start_condition = {},
end_condition = {};
date_params['$and'] = [start_condition, end_condition];
start_condition[attr] = {'$lt': range[1]};
end_condition[attr] = {'$lt': range[1]};
} else if (range[0] !== undefined) {
date_params[attr] = {'$gt': range[0]}
} else if (range[1] !== undefined) {
date_params[attr] = {'$lt': range[1]}
}
return date_params;
}
};
export default databaseable;