Add payloads schema

This commit is contained in:
Zalmoxisus 2016-11-09 18:45:41 +02:00
parent 9c048e66ef
commit 6f202e7715
2 changed files with 28 additions and 6 deletions

View File

@ -20,6 +20,16 @@ exports.up = function(knex, Promise) {
.references('id') .references('id')
.inTable('remotedev_apps'); .inTable('remotedev_apps');
}), }),
knex.schema.createTable('remotedev_payloads', function(table){
table.uuid('id').primary();
table.text('state');
table.text('action');
table.timestamp('added');
table.uuid('reportId')
.references('id')
.inTable('remotedev_reports');
}),
knex.schema.createTable('remotedev_apps', function(table){ knex.schema.createTable('remotedev_apps', function(table){
table.uuid('id').primary(); table.uuid('id').primary();

View File

@ -3,6 +3,7 @@ var pick = require('lodash/pick');
var connector = require('./db/connector'); var connector = require('./db/connector');
var reports = 'remotedev_reports'; var reports = 'remotedev_reports';
// var payloads = 'remotedev_payloads';
var knex; var knex;
var baseFields = ['id', 'title', 'added']; var baseFields = ['id', 'title', 'added'];
@ -22,7 +23,7 @@ function list(query, fields) {
function get(id) { function get(id) {
if (!id) return error('No id specified.'); if (!id) return error('No id specified.');
return knex(reports).where('id', id); return knex(reports).where('id', id);
} }
function add(data) { function add(data) {
@ -33,8 +34,10 @@ function add(data) {
return error('Type ' + data.type + ' is not supported yet.'); return error('Type ' + data.type + ' is not supported yet.');
} }
var obj = { var added = Date.now();
id: uuid.v4(), var reportId = uuid.v4();
var report = {
id: reportId,
type: data.type, type: data.type,
title: data.title || data.exception && data.exception.message || data.action, title: data.title || data.exception && data.exception.message || data.action,
description: data.description, description: data.description,
@ -48,11 +51,20 @@ 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,
exception: data.exception exception: data.exception,
added: added
}; };
/*
var payload = {
id: uuid.v4(),
reportId: reportId,
state: data.payload,
added: added
};
*/
return knex.insert(obj).into(reports) return knex.insert(report).into(reports)
.then(function (){ return byBaseFields(obj); }) .then(function (){ return byBaseFields(report); })
} }
function byBaseFields(data) { function byBaseFields(data) {