diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-05-28 20:18:20 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-05-28 20:18:20 +0200 |
| commit | 84aca1791d43ae5a65bd88747636e418b380ad64 (patch) | |
| tree | f56687c992bb6dc3956e8744be8030a48f00d95e /app/server/site.js | |
| parent | c248031739699775477c838f8e836fedf243c720 (diff) | |
reconsidering datasets component... stub in api client
Diffstat (limited to 'app/server/site.js')
| -rw-r--r-- | app/server/site.js | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/app/server/site.js b/app/server/site.js new file mode 100644 index 0000000..44c4508 --- /dev/null +++ b/app/server/site.js @@ -0,0 +1,94 @@ +require('dotenv').config() +const express = require('express') +const http = require('http') +const path = require('path') +const api = require('./util/api') +const multer = require('multer')() +const upload = require('./util/upload') +const bodyParser = require('body-parser') +// const multer = require('multer') +// const upload = multer({ dest: 'uploads/' }) + +export const app = express() +export const server = http.createServer(app) +server.listen(process.env.EXPRESS_PORT, () => { + console.log('Cortex remote listening on http://localhost:' + server.address().port) +}) + +app.disable('x-powered-by') +app.use(bodyParser.json()) +app.use(bodyParser.urlencoded({ extended: false })) +app.use(express.query()) +app.use(express.static()) +app.use(express.static(path.join(__dirname, '../public'), { extensions: ['html'] })) + +upload.init() + +const api_folders = api(app, 'folder') +const api_files = api(app, 'file') +const api_jobs = api(app, 'job') +const api_tasks = api(app, 'task') + +// app.use('/upload', require('./upload')) + +app.post('/folders/:id', + multer.array('file'), + function (req, res, next){ + if (! req.files || ! req.files.length) { + res.json({ error: "no files" }) + return + } + var thread_id = res.thread.get('id') + var dirname = process.env.S3_PATH + '/data/' + thread_id + '/' + var promises = req.files.map((file) => { + return new Promise( (resolve, reject) => { + upload.put({ + file: file, + preserveFilename: true, + dirname: dirname, + unacceptable: function(err){ + reject(err) + }, + success: function(url){ + console.log("file >", url) + var data = { + folder_id: req.params.id, + name: fn, + size: file.size, + generated: false, + processed: false, + + thread: res.thread.get('id'), + username: req.user.get('username'), + filename: file.originalname, + date: util.now(), + size: file.size, + privacy: false, + storage: process.env.S3_BUCKET, + } + + const fn = file.originalname + api_files.create({ + // table.string('username') + }).then( (file) => { + resolve(file) + }).catch( (err) => { + console.warn(err) + res.sendStatus(500) + }) + } + }) + }) + }) + Promise.all(promises).then(files => { + res.json({ files }) + next() + }).catch(err => { + console.log(err) + }) + }) + +app.get('/:module/:mode/', serve_index) +app.get('/', serve_index) + +function serve_index(req, res) { res.sendFile(path.join(__dirname, '../../public', 'index.html')) } |
