const db = require('../db') export function api (app, type) { const type_uri = '/api/' + type + '/' const type_id = type_uri + ':id' const model = db.models[type] // index app.get(type_uri, (req, res) => { console.log('index', type) model.index(req.query).then( data => res.json(data) ) }) // show app.get(type_id, (req, res) => { console.log('show', type, req.params.id) model.show(req.params.id).then( (data) => { res.json(data) }) }) // create app.post(type_uri, (req, res) => { console.log('create', type) model.create(req.body).then( (data) => { res.json(data) })// .catch( () => res.sendStatus(500) ) }) // update app.put(type_id, (req, res) => { console.log('update', type, req.params.id) model.update(req.body.id, req.body).then( (data) => { res.json(data) })// .catch( () => res.sendStatus(500) ) }) // destroy app.delete(type_id, (req, res) => { console.log('destroy', type, req.params.id) model.destroy(req.params.id).then( (data) => { res.json(data) })// .catch( () => res.sendStatus(500) ) }) return model } const upload = require('./upload') export function uploadFile(req, res, next) { if (! req.file) { res.json({ error: "no files" }) return } var dirname = '/cortex/' + req.params.tool + '/' upload.put({ file: req.file, dirname: dirname, preserveFilename: true, unacceptable: function(err){ res.sendStatus({ error: 'Problem uploading file.' }) }, success: function(url){ res.urls = url next() } }) } export function uploadFiles(req, res, next){ if (! req.files || ! req.files.length) { res.json({ error: "no files" }) return } var dirname = '/cortex/' + req.params.tool + '/' var promises = req.files.map((file) => { return new Promise( (resolve, reject) => { upload.put({ file: file, dirname: dirname, preserveFilename: true, unacceptable: function(err){ reject(err) }, success: function(url){ console.log("file >", url) resolve(url) } }) }) }) Promise.all(promises).then(values => { res.urls = urls next() }).catch(err => { console.log(err) }) }