Data selector by base fields
This commit is contained in:
parent
7986004ea2
commit
9040cae21b
18
lib/store.js
18
lib/store.js
@ -6,6 +6,8 @@ var store;
|
|||||||
var adapter;
|
var adapter;
|
||||||
var Report;
|
var Report;
|
||||||
|
|
||||||
|
var baseFields = ['id', 'title', 'added'];
|
||||||
|
|
||||||
function error(msg) {
|
function error(msg) {
|
||||||
return new Promise(function(resolve, reject) {
|
return new Promise(function(resolve, reject) {
|
||||||
return resolve({ error: msg });
|
return resolve({ error: msg });
|
||||||
@ -32,7 +34,7 @@ function listEvery(query) {
|
|||||||
function list(query, fields) {
|
function list(query, fields) {
|
||||||
return new Promise(function(resolve) {
|
return new Promise(function(resolve) {
|
||||||
listEvery(query).then(function(data) {
|
listEvery(query).then(function(data) {
|
||||||
return resolve(map(data, fields));
|
return resolve(map(data, fields || baseFields));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -60,7 +62,7 @@ function add(data) {
|
|||||||
var obj = {
|
var obj = {
|
||||||
id: uuid.v4(),
|
id: uuid.v4(),
|
||||||
type: data.type,
|
type: data.type,
|
||||||
title: data.title,
|
title: data.title || data.exception && data.exception.message || data.action,
|
||||||
description: data.description,
|
description: data.description,
|
||||||
action: data.action,
|
action: data.action,
|
||||||
payload: data.payload,
|
payload: data.payload,
|
||||||
@ -72,8 +74,7 @@ function add(data) {
|
|||||||
user: data.user,
|
user: data.user,
|
||||||
userId: typeof data.user === 'object' ? data.user.id : data.user,
|
userId: typeof data.user === 'object' ? data.user.id : data.user,
|
||||||
meta: data.meta,
|
meta: data.meta,
|
||||||
error: data.error,
|
exception: data.exception,
|
||||||
isLog: !!data.isLog,
|
|
||||||
added: Date.now()
|
added: Date.now()
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -86,6 +87,10 @@ function add(data) {
|
|||||||
return Report.create(obj);
|
return Report.create(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function byBaseFields(data) {
|
||||||
|
return pick(data, baseFields);
|
||||||
|
}
|
||||||
|
|
||||||
function createStore(options) {
|
function createStore(options) {
|
||||||
store = new JSData.DS();
|
store = new JSData.DS();
|
||||||
Report = store.defineResource('report');
|
Report = store.defineResource('report');
|
||||||
@ -93,7 +98,10 @@ function createStore(options) {
|
|||||||
return {
|
return {
|
||||||
list: list,
|
list: list,
|
||||||
get: get,
|
get: get,
|
||||||
add: add
|
add: add,
|
||||||
|
selectors: {
|
||||||
|
byBaseFields: byBaseFields
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ var createStore = require('./store');
|
|||||||
module.exports.run = function(worker) {
|
module.exports.run = function(worker) {
|
||||||
var httpServer = worker.httpServer;
|
var httpServer = worker.httpServer;
|
||||||
var scServer = worker.scServer;
|
var scServer = worker.scServer;
|
||||||
var store;
|
var store = createStore(worker.options);
|
||||||
|
|
||||||
httpServer.on('request', app);
|
httpServer.on('request', app);
|
||||||
|
|
||||||
@ -23,8 +23,6 @@ module.exports.run = function(worker) {
|
|||||||
app.use(bodyParser.urlencoded({ extended: false }));
|
app.use(bodyParser.urlencoded({ extended: false }));
|
||||||
app.post('/', function(req, res) {
|
app.post('/', function(req, res) {
|
||||||
if (!req.body) return res.status(404).end();
|
if (!req.body) return res.status(404).end();
|
||||||
if (!store) store = createStore(worker.options);
|
|
||||||
|
|
||||||
switch(req.body.op) {
|
switch(req.body.op) {
|
||||||
case 'get':
|
case 'get':
|
||||||
store.get(req.body.id).then(function(r) {
|
store.get(req.body.id).then(function(r) {
|
||||||
@ -38,8 +36,10 @@ module.exports.run = function(worker) {
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
store.add(req.body).then(function(r) {
|
store.add(req.body).then(function(r) {
|
||||||
scServer.exchange.publish('log', req.body);
|
|
||||||
res.send({ id: r.id, error: r.error });
|
res.send({ id: r.id, error: r.error });
|
||||||
|
scServer.exchange.publish('report', {
|
||||||
|
type: 'add', data: store.selectors.byBaseFields(r)
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user