diff options
| author | Pitu <[email protected]> | 2019-02-19 23:52:24 +0900 |
|---|---|---|
| committer | Pitu <[email protected]> | 2019-02-19 23:52:24 +0900 |
| commit | 89a271818ed25b0a17a17dd1d6804e34d1f2ec0f (patch) | |
| tree | 2e63d3b41eeacb8f172f8ee3e1374124b934c6a3 /src/api/structures | |
| parent | Create wizard.js (diff) | |
| download | host.fuwn.me-89a271818ed25b0a17a17dd1d6804e34d1f2ec0f.tar.xz host.fuwn.me-89a271818ed25b0a17a17dd1d6804e34d1f2ec0f.zip | |
Switch config to .env
Diffstat (limited to 'src/api/structures')
| -rw-r--r-- | src/api/structures/Route.js | 24 | ||||
| -rw-r--r-- | src/api/structures/Server.js | 32 |
2 files changed, 25 insertions, 31 deletions
diff --git a/src/api/structures/Route.js b/src/api/structures/Route.js index 9ff65f0..32d576f 100644 --- a/src/api/structures/Route.js +++ b/src/api/structures/Route.js @@ -1,6 +1,13 @@ const JWT = require('jsonwebtoken'); -const { server } = require('../../../config'); -const db = require('knex')(server.database); +const db = require('knex')({ + client: process.env.DB_CLIENT, + connection: { + host: process.env.DB_HOST, + user: process.env.DB_USER, + password: process.env.DB_PASS, + database: process.env.DB_DATABASE + } +}); const moment = require('moment'); const log = require('../utils/Log'); @@ -15,12 +22,12 @@ class Route { } authorize(req, res) { - if (this.options.bypassAuth) return this.run(req, res); + if (this.options.bypassAuth) return this.run(req, res, db); if (!req.headers.authorization) return res.status(401).json({ message: 'No authorization header provided' }); const token = req.headers.authorization.split(' ')[1]; if (!token) return res.status(401).json({ message: 'No authorization header provided' }); - return JWT.verify(token, server.secret, async (error, decoded) => { + return JWT.verify(token, process.env.SECRET, async (error, decoded) => { if (error) { log.error(error); return res.status(401).json({ message: 'Your token appears to be invalid' }); @@ -33,13 +40,18 @@ class Route { if (iat && iat < moment(user.passwordEditedAt).format('x')) return res.status(401).json({ message: 'Token expired' }); if (!user.enabled) return res.status(401).json({ message: 'This account has been disabled' }); - return this.run(req, res, user); + return this.run(req, res, db, user); }); } - run(req, res, user) { // eslint-disable-line no-unused-vars + run(req, res, db) { // eslint-disable-line no-unused-vars return; } + + error(res, error) { + log.error(error); + return res.status(500).json({ message: 'There was a problem parsing the request' }); + } } module.exports = Route; diff --git a/src/api/structures/Server.js b/src/api/structures/Server.js index 5ead078..dc72558 100644 --- a/src/api/structures/Server.js +++ b/src/api/structures/Server.js @@ -1,4 +1,5 @@ -const config = require('../../../config'); +require('dotenv').config(); + const log = require('../utils/Log'); const express = require('express'); const helmet = require('helmet'); @@ -8,17 +9,16 @@ const bodyParser = require('body-parser'); const jetpack = require('fs-jetpack'); const path = require('path'); const Database = require('./Database'); -const oneliner = require('one-liner'); const rateLimiter = new RateLimit({ - windowMs: config.server.rateLimits.window, - max: config.server.rateLimits.max, + windowMs: process.env.RATE_LIMIT_WINDOW, + max: process.env.RATE_LIMIT_MAX, delayMs: 0 }); class Server { constructor() { - this.port = config.server.ports.backend; + this.port = process.env.SERVER_PORT; this.server = express(); this.server.set('trust proxy', 1); this.server.use(helmet()); @@ -36,12 +36,6 @@ class Server { // this.server.use(rateLimiter); this.routesFolder = path.join(__dirname, '..', 'routes'); this.database = new Database(); - this.server.get('/config', (req, res) => res.json({ - baseURL: config.backendLocation, - serviceName: config.serviceName, - maxFileSize: config.uploads.uploadMaxSize, - chunkSize: config.uploads.chunkSize - })); } registerAllTheRoutes() { @@ -51,24 +45,12 @@ class Server { if (Array.isArray(RouteClass)) routes = RouteClass; for (const File of routes) { const route = new File(); - this.server[route.method](config.server.routePrefix + route.path, route.authorize.bind(route)); - log.info(`Found route ${route.method.toUpperCase()} ${config.server.routePrefix}${route.path}`); + this.server[route.method](process.env.ROUTE_PREFIX + route.path, route.authorize.bind(route)); + log.info(`Found route ${route.method.toUpperCase()} ${process.env.ROUTE_PREFIX}${route.path}`); } }); } - writeFrontendConfig() { - const template = oneliner` - module.exports = { - baseURL: '${config.backendLocation}', - serviceName: '${config.serviceName}', - maxFileSize: '${config.uploads.uploadMaxSize}', - chunkSize: '${config.uploads.chunkSize}' - }`; - jetpack.write(path.join(__dirname, '..', '..', 'frontend', 'config.js'), template); - log.success('Frontend config file generated successfully'); - } - start() { jetpack.dir('uploads/chunks'); jetpack.dir('uploads/thumbs/square'); |