Use knex instead of js-data
This commit is contained in:
70
lib/store.js
70
lib/store.js
@ -1,11 +1,9 @@
|
||||
var uuid = require('node-uuid');
|
||||
var pick = require('lodash/pick');
|
||||
var JSData = require('js-data');
|
||||
var getAdapter = require('./adapter');
|
||||
var connector = require('./db/connector');
|
||||
|
||||
var store;
|
||||
var adapter;
|
||||
var Report;
|
||||
var reports = 'remotedev_reports';
|
||||
var knex;
|
||||
|
||||
var baseFields = ['id', 'title', 'added'];
|
||||
|
||||
@ -15,41 +13,17 @@ function error(msg) {
|
||||
});
|
||||
}
|
||||
|
||||
function map(data, fields) {
|
||||
if (!fields) return data;
|
||||
return data.map(function(r) {
|
||||
return pick(r, fields);
|
||||
});
|
||||
}
|
||||
|
||||
function listEvery(query) {
|
||||
if (!adapter) {
|
||||
return new Promise(function(resolve) {
|
||||
var report = Report.filter(query);
|
||||
return resolve(report);
|
||||
});
|
||||
}
|
||||
return Report.findAll(query);
|
||||
}
|
||||
|
||||
function list(query, fields) {
|
||||
return new Promise(function(resolve) {
|
||||
listEvery(query).then(function(data) {
|
||||
return resolve(map(data, fields || baseFields));
|
||||
});
|
||||
});
|
||||
knex.select().from('remotedev_apps').then(function(r){ console.log(r) });
|
||||
var r = knex.select(fields || baseFields).from(reports);
|
||||
if (query) return r.where(query);
|
||||
return r;
|
||||
}
|
||||
|
||||
function get(id) {
|
||||
if (!id) return error('No id specified.');
|
||||
|
||||
if (!adapter) {
|
||||
return new Promise(function(resolve) {
|
||||
var report = Report.get(id);
|
||||
return resolve(report);
|
||||
});
|
||||
}
|
||||
return Report.find(id);
|
||||
return knex(reports).where('id', id);
|
||||
}
|
||||
|
||||
function add(data) {
|
||||
@ -75,17 +49,11 @@ function add(data) {
|
||||
user: data.user,
|
||||
userId: typeof data.user === 'object' ? data.user.id : data.user,
|
||||
meta: data.meta,
|
||||
exception: data.exception,
|
||||
added: Date.now()
|
||||
exception: data.exception
|
||||
};
|
||||
|
||||
if (!adapter) {
|
||||
return new Promise(function(resolve) {
|
||||
var report = Report.inject(obj);
|
||||
return resolve(report);
|
||||
});
|
||||
}
|
||||
return Report.create(obj);
|
||||
return knex.insert(obj).into(reports)
|
||||
.then(function (){ return byBaseFields(obj); })
|
||||
}
|
||||
|
||||
function byBaseFields(data) {
|
||||
@ -93,24 +61,12 @@ function byBaseFields(data) {
|
||||
}
|
||||
|
||||
function createStore(options) {
|
||||
var adapterName = options.adapter;
|
||||
store = new JSData.DS();
|
||||
|
||||
if (adapterName) {
|
||||
var DSAdapter = getAdapter(adapterName);
|
||||
adapter = new DSAdapter(options.dbOptions);
|
||||
store.registerAdapter(adapterName, adapter, { default: true });
|
||||
}
|
||||
|
||||
Report = store.defineResource('report');
|
||||
knex = connector(options);
|
||||
|
||||
return {
|
||||
list: list,
|
||||
get: get,
|
||||
add: add,
|
||||
selectors: {
|
||||
byBaseFields: byBaseFields
|
||||
}
|
||||
add: add
|
||||
};
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user