Data selector by base fields

This commit is contained in:
Zalmoxisus
2016-09-11 17:07:02 +03:00
parent 7986004ea2
commit 9040cae21b
2 changed files with 17 additions and 9 deletions

View File

@ -6,6 +6,8 @@ var store;
var adapter;
var Report;
var baseFields = ['id', 'title', 'added'];
function error(msg) {
return new Promise(function(resolve, reject) {
return resolve({ error: msg });
@ -32,7 +34,7 @@ function listEvery(query) {
function list(query, fields) {
return new Promise(function(resolve) {
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 = {
id: uuid.v4(),
type: data.type,
title: data.title,
title: data.title || data.exception && data.exception.message || data.action,
description: data.description,
action: data.action,
payload: data.payload,
@ -72,8 +74,7 @@ function add(data) {
user: data.user,
userId: typeof data.user === 'object' ? data.user.id : data.user,
meta: data.meta,
error: data.error,
isLog: !!data.isLog,
exception: data.exception,
added: Date.now()
};
@ -86,6 +87,10 @@ function add(data) {
return Report.create(obj);
}
function byBaseFields(data) {
return pick(data, baseFields);
}
function createStore(options) {
store = new JSData.DS();
Report = store.defineResource('report');
@ -93,7 +98,10 @@ function createStore(options) {
return {
list: list,
get: get,
add: add
add: add,
selectors: {
byBaseFields: byBaseFields
}
};
}