const Middleware = require('libflitter/middleware/Middleware') /* * DatabaseRoute Middleware * ------------------------------------------------------------- * Put some description here! */ class DatabaseRoute extends Middleware { static get services() { return [...super.services, 'models'] } async test(req, res, next, args = {}){ const Database = this.models.get('api:db:Database') const id = req.params.database_id ? req.params.database_id : (req.query.database_id ? req.query.database_id : false) if ( !id ) return res.status(400).message('Missing required: database_id').api() const db = await Database.findOne({UUID: id}) if ( !db ) return res.status(404).message('Unable to find database with that ID.').api() if ( !(await db.is_accessible_by(req.user)) ) return req.security.deny() if ( !req.form ) req.form = {} req.form.database = db next() } } module.exports = exports = DatabaseRoute