const config = require('./../config') const routes = require('express').Router() const uploadController = require('./../controllers/uploadController') const renderOptions = { uploadDisabled: false, maxFileSize: config.cloudflare.noJsMaxSize || config.uploads.maxSize } if (config.private) { if (config.enableUserAccounts) { renderOptions.uploadDisabled = 'Anonymous upload is disabled.' } else { renderOptions.uploadDisabled = 'Running in private mode.' } } routes.get('/nojs', async (req, res, next) => { const options = { renderOptions } options.gitHash = req.app.get('git-hash') return res.render('nojs', options) }) routes.post('/nojs', (req, res, next) => { // TODO: Support upload by URLs. res._json = res.json res.json = (...args) => { const result = args[0] const options = { renderOptions } options.gitHash = req.app.get('git-hash') options.errorMessage = result.success ? '' : (result.description || 'An unexpected error occurred.') options.files = result.files || [{}] return res.render('nojs', options) } return uploadController.upload(req, res, next) }) module.exports = routes