reiso
Version:
66 lines • 5.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const basicAuth = require("basic-auth");
const Translation = require("../Modules/Translation");
const Log = require("../Modules/Log");
const ServerHook_1 = require("../Modules/ServerHook");
const Translation_1 = require("./Lib/Translation");
async function checkHooks(req, res, next, context) {
for (let hook of ServerHook_1.getHooksWebHook()) {
await hook(req, res, next, context);
}
}
exports.checkHooks = checkHooks;
async function checkAuth(webHook, req, res, context) {
let isAuth = true;
if (webHook.isAuth) {
isAuth = await webHook.isAuth(req.params, req.body, context);
}
if (isAuth && webHook.auth) {
let auth = basicAuth(req);
if (!auth) {
throw Error('Ckeck auth request. "basic-auth" module does\'nt work');
}
else {
let result = await webHook.auth(auth.name, auth.pass, req.params, req.body, context);
if (!result) {
return false;
}
}
}
return true;
}
exports.checkAuth = checkAuth;
function prepareLanguage(context) {
if (!context.language) {
context.language = Translation.getLanguage();
}
context.trans = (query, ...args) => Translation.trans(context.language, query, ...args);
}
exports.prepareLanguage = prepareLanguage;
async function hook(webHook, req, res, next, language) {
const context = {
files: req.files,
language: language || Translation.getLanguage()
};
await checkHooks(req, res, next, context);
Translation_1.setLanguageContext(context);
if (!await checkAuth(webHook, req, res, context)) {
res.set('WWW-Authenticate', 'Basic realm=Authorization Required');
res.send(401);
return;
}
;
try {
const body = await webHook.func(req.params, req.body, context);
res.status(200);
res.jsonp(body);
}
catch (e) {
res.status(501);
res.send(e.message);
Log.logError(e, { type: "webhook" });
}
}
exports.hook = hook;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViSG9vay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZXJ2ZXIvV2ViSG9vay50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSx3Q0FBd0M7QUFHeEMsc0RBQXNEO0FBQ3RELHNDQUFzQztBQUN0QyxzREFBMEU7QUFDMUUsbURBQXVEO0FBRWhELEtBQUsscUJBQXFCLEdBQW9CLEVBQUUsR0FBcUIsRUFBRSxJQUEwQixFQUFFLE9BQU87SUFDL0csS0FBSyxJQUFJLElBQUksSUFBSSw0QkFBZSxFQUFFLEVBQUU7UUFDbEMsTUFBTSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7S0FDcEM7QUFDSCxDQUFDO0FBSkQsZ0NBSUM7QUFFTSxLQUFLLG9CQUFvQixPQUF5QixFQUFFLEdBQW9CLEVBQUUsR0FBcUIsRUFBRSxPQUFPO0lBQzdHLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztJQUVsQixJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7UUFDbEIsTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDOUQ7SUFFRCxJQUFJLE1BQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1FBQzFCLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUxQixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsTUFBTSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztTQUN0RTthQUFNO1lBQ0wsSUFBSSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDckYsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWCxPQUFPLEtBQUssQ0FBQzthQUNkO1NBQ0Y7S0FDRjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQXJCRCw4QkFxQkM7QUFFRCx5QkFBZ0MsT0FBTztJQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtRQUNyQixPQUFPLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztLQUM5QztJQUVELE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUMxRixDQUFDO0FBTkQsMENBTUM7QUFFTSxLQUFLLGVBQWUsT0FBeUIsRUFBRSxHQUFvQixFQUFFLEdBQXFCLEVBQUUsSUFBMEIsRUFBRSxRQUFpQjtJQUM5SSxNQUFNLE9BQU8sR0FBRztRQUNkLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztRQUNoQixRQUFRLEVBQUUsUUFBUSxJQUFJLFdBQVcsQ0FBQyxXQUFXLEVBQUU7S0FDaEQsQ0FBQztJQUVGLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRTFDLGdDQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTVCLElBQUksQ0FBQyxNQUFNLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsRUFBRTtRQUNoRCxHQUFHLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLG9DQUFvQyxDQUFDLENBQUM7UUFDbEUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLE9BQU87S0FDUjtJQUFBLENBQUM7SUFFRixJQUFJO1FBQ0YsTUFBTSxJQUFJLEdBQUcsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMvRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakI7SUFDRCxPQUFPLENBQUMsRUFBRTtRQUNSLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEIsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztLQUN0QztBQUNILENBQUM7QUExQkQsb0JBMEJDIn0=