diff options
Diffstat (limited to 'lib/db')
| -rw-r--r-- | lib/db/bookshelf.js | 4 | ||||
| -rw-r--r-- | lib/db/crud.js | 2 | ||||
| -rw-r--r-- | lib/db/model.js | 24 | ||||
| -rw-r--r-- | lib/db/models.js | 22 |
4 files changed, 32 insertions, 20 deletions
diff --git a/lib/db/bookshelf.js b/lib/db/bookshelf.js index 69157cc..27d9dbb 100644 --- a/lib/db/bookshelf.js +++ b/lib/db/bookshelf.js @@ -1,4 +1,4 @@ -var knex = require('knex')({ +const knex = require('knex')({ client: 'mysql2', connection: { host : process.env.DB_HOST, @@ -16,7 +16,7 @@ var knex = require('knex')({ } }) -var bookshelf = require('bookshelf')(knex) +const bookshelf = require('bookshelf')(knex) module.exports = { bookshelf: bookshelf, diff --git a/lib/db/crud.js b/lib/db/crud.js index fb32690..c0e0e2c 100644 --- a/lib/db/crud.js +++ b/lib/db/crud.js @@ -34,7 +34,7 @@ module.exports = function(model) { return new model({'id': id}).save(data) }, destroy: (id) => { - return new model({'id': id}).destroy(data) + return new model({'id': id}).destroy() }, } }
\ No newline at end of file diff --git a/lib/db/model.js b/lib/db/model.js index 1f729f6..fae7691 100644 --- a/lib/db/model.js +++ b/lib/db/model.js @@ -27,14 +27,14 @@ module.exports = function modelScope(type, db_model, _props) { let recs = data.toJSON() const loader = new Loader () loader.onReady( () => { - console.log(type, 'ready') + // console.log(type, 'ready') resolve(recs) }) - console.log('hasOne') + // console.log('hasOne') loader.register('hasOne') Object.keys(props.hasOne).forEach( (key,i) => { loader.register(key) - console.log('register', key) + // console.log('register', key) const type = props.hasOne[key] const id_lookup = {} recs.forEach(r => { @@ -50,7 +50,7 @@ module.exports = function modelScope(type, db_model, _props) { sub_recs.toJSON().forEach(rec => { id_lookup[rec.id].forEach( parent_rec => parent_rec[short_key] = rec ) }) - console.log('ready', key) + // console.log('ready', key) loader.ready(key) }) }) @@ -94,10 +94,10 @@ module.exports = function modelScope(type, db_model, _props) { crud.index(query).then( (recs) => { if (recs && recs.length) { const rec = recs.at(0) - console.log('found rec', data.name) + // console.log('found rec', data.name) return resolve(rec) } - console.log('creating rec', data.name) + // console.log('creating rec', data.name) model.create(data).then( (rec) => { resolve(rec) }) @@ -118,7 +118,7 @@ module.exports = function modelScope(type, db_model, _props) { }, update: (id, data) => { - console.log('update', id) + // console.log('update', id) return new Promise( (resolve, reject) => { crud.update(id, model.sanitize(data)).then( (data) => { resolve(data.toJSON()) @@ -132,20 +132,22 @@ module.exports = function modelScope(type, db_model, _props) { destroy: (id) => { return new Promise( (resolve, reject) => { crud.destroy(id).then( (data) => { - res.json(data.toJSON()) + resolve(data.toJSON()) })// .catch( () => res.sendStatus(500) ) }) }, sanitize: (data) => { var valid = {} - Object.keys(data).forEach(key => { + props.fields.forEach(key => { if (props.hasOne[key]) { return } - valid[key] = data[key] + if (key in data) { + valid[key] = data[key] + } }) - console.log(valid) + // console.log(valid) return valid }, diff --git a/lib/db/models.js b/lib/db/models.js index 588ce58..2108148 100644 --- a/lib/db/models.js +++ b/lib/db/models.js @@ -1,10 +1,8 @@ let fs = require('fs') let model = require('./model') - -let connection = require("./bookshelf") -let bookshelf = connection.bookshelf -let knex = connection.knex +let bookshelf = require("./bookshelf").bookshelf +import bridge from '../bridge' let Folder = bookshelf.Model.extend({ tableName: 'folders', @@ -25,15 +23,27 @@ let Task = bookshelf.Model.extend({ module.exports = { folder: model('folder', Folder, { + fields: "name username description".split(" "), afterCreate: (folder) => { fs.mkdir('data/' + folder.get('id') + '/', function(){ console.log('created folder', folder.get('id'), folder.get('name')) }) } }), - file: model('file', File), - job: model('job', Job), + file: model('file', File, { + fields: "folder_id username name mime type duration analysis size processed generated".split(" "), + afterCreate: (file) => { + bridge.processFiles() + } + }), + job: model('job', Job, { + fields: "name username completed tool".split(" "), + }), task: model('task', Task, { + fields: "job_id username completed processing tool content_file_id style_file_id output_file_id alpha iterations stdout stderr".split(" "), + afterCreate: (task) => { + bridge.processTasks() + }, hasOne: { content_file: File, style_file: File, |
