diff options
Diffstat (limited to 'index.js')
| -rw-r--r-- | index.js | 150 |
1 files changed, 5 insertions, 145 deletions
@@ -1,147 +1,7 @@ +import {} from 'dotenv/config' -require('dotenv').load() - -var fs = require('fs') -var app, express = require('express') -var http = require('http') -var bodyParser = require('body-parser') -var path = require('path') - -var multer = require('multer') -var upload = multer({ dest: 'uploads/' }) - -var app, server - -const db = require('./lib/db') - -var site = module.exports = {} - -site.init = function(){ - app = express() - app.use(express.static(path.join(__dirname, './public'))) - app.use(bodyParser.json()) - app.use(bodyParser.urlencoded({ extended: false })) - - app.use(express.query()) - - server = http.createServer(app).listen(process.env.PORT, function () { - console.log('Cortex listening at http://localhost:%s', server.address().port) - }) - - const api_folders = crud(app, 'folder', db.Folder, { - afterCreate: (folder) => { - fs.mkdir('public/data/' + folder.id + '/', function(){ - console.log('created folder', folder.id, folder.name) - }) - } - }) - const api_files = crud(app, 'file', db.File) - const api_jobs = crud(app, 'job', db.Job) - const api_tasks = crud(app, 'task', db.Task) - - app.post('/folders/:id', upload.array('file'), function(req, res){ - if ( ! req.files ) return; - let loaded = {}; - ( req.files || [] ).forEach( (file) => { - loaded[file.filename] = false - const fn = file.originalname - fs.rename(file.path, 'public/data/' + req.params.id + '/' + fn, function(err){ - api_files.create({ - // table.string('username') - 'folder_id': req.params.id, - 'name': fn, - 'size': file.size, - 'generated': false, - 'processed': false, - }).then( (file) => { - loaded[file.filename] = file.toJSON() - if (Object.keys(loaded).some( el => !! el )) { - res.json( Object.keys(loaded).map(k=>loaded[k]).sort((a,b) => { b.id - a.id }) ) - } - }).catch( (err) => { - console.warn(err) - res.sendStatus(500) - }) - }) - }) - }) - - function crud(app, type_s, model, callbacks){ - callbacks = callbacks || {} - const type = '/' + type_s + 's/' - const type_id = type + ':id' - - const crud = db.crud(type_s, model) - - // index - app.get(type, (req, res) => { - console.log('index', type) - crud.index(req.query).then( (data) => { - res.json(data ? data.toJSON() : []) - }) -// }).catch( () => res.sendStatus(500) ) - }) - - // show - app.get(type_id, (req, res) => { - console.log('show', type, req.params.id) - crud.show(req.params.id).then( (data) => { - // console.log(data) - res.json(data.toJSON()) - })// .catch( (err) => res.sendStatus(500) ) - }) - - // create - app.post(type, (req, res) => { - console.log('create', type) - crud.create(req.body).then( (data) => { - res.json(data.toJSON()) - callbacks.afterCreate && callbacks.afterCreate(data.toJSON()) - })// .catch( () => res.sendStatus(500) ) - }) - - // update - app.put(type_id, (req, res) => { - console.log('update', type, req.params.id) - crud.update(req.body.id, req.body).then( (data) => { - res.json(data.toJSON()) - })// .catch( () => res.sendStatus(500) ) - }) - - // destroy - app.delete(type_id, (req, res) => { - console.log('destroy', type, req.params.id) - crud.destroy(req.params.id).then( (data) => { - res.json(data.toJSON()) - })// .catch( () => res.sendStatus(500) ) - }) - - return crud - } -} -// app.get("/p/:id", function(req, res){ -// res.sendFile("index.html", {root: './public'}) -// }) -// app.get("/get/random", function(req, res){ -// db.getRandom().then(function(img){ -// res.json(img) -// }) -// }) -// app.get("/get/latest", function(req, res){ -// db.getLatest().then(function(img){ -// res.json(img) -// }) -// }) -// app.get("/get/:id/hotlink", function(req, res){ -// db.getImage(req.params.id).then(function(img){ -// res.redirect(img.url) -// }) -// }) -// app.get("/get/:id", function(req, res){ -// db.getImage(req.params.id).then(function(img){ -// res.json(img) -// }) -// }) - -site.init() +import Bridge from './lib/bridge' +const bridge = new Bridge +import server from './lib/server' +server.init(bridge) |
