diff options
Diffstat (limited to 'app/server/db/models.js')
| -rw-r--r-- | app/server/db/models.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/app/server/db/models.js b/app/server/db/models.js new file mode 100644 index 0000000..2108148 --- /dev/null +++ b/app/server/db/models.js @@ -0,0 +1,53 @@ + +let fs = require('fs') +let model = require('./model') +let bookshelf = require("./bookshelf").bookshelf +import bridge from '../bridge' + +let Folder = bookshelf.Model.extend({ + tableName: 'folders', + hasTimestamps: true, +}) +let File = bookshelf.Model.extend({ + tableName: 'files', + hasTimestamps: true, +}) +let Job = bookshelf.Model.extend({ + tableName: 'jobs', + hasTimestamps: true, +}) +let Task = bookshelf.Model.extend({ + tableName: 'tasks', + hasTimestamps: true, +}) + +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, { + 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, + output_file: File, + } + }), +} |
