summaryrefslogtreecommitdiff
path: root/app/server/site.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-05-28 20:18:20 +0200
committerJules Laplace <julescarbon@gmail.com>2018-05-28 20:18:20 +0200
commit84aca1791d43ae5a65bd88747636e418b380ad64 (patch)
treef56687c992bb6dc3956e8744be8030a48f00d95e /app/server/site.js
parentc248031739699775477c838f8e836fedf243c720 (diff)
reconsidering datasets component... stub in api client
Diffstat (limited to 'app/server/site.js')
-rw-r--r--app/server/site.js94
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')) }