The Digital Telepresence Platform core implementing user account management, authentication, search, global directory, and other platform-wide services. https://digitaltelepresence.com/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

61 lines
1.3 KiB

// site-common.js
// Copyright (C) 2022 DTP Technologies, LLC
// License: Apache-2.0
'use strict';
const path = require('path');
const pug = require('pug');
const { SiteLog } = require(path.join(__dirname, 'site-log'));
const Events = require('events');
class SiteCommon extends Events {
constructor (dtp, component) {
super();
this.dtp = dtp;
this.component = component;
this.log = new SiteLog(dtp, component);
this.appTemplateRoot = path.join(this.dtp.config.root, 'app', 'templates');
}
regenerateSession (req) {
return new Promise((resolve, reject) => {
req.session.regenerate((err) => {
if (err) {
return reject(err);
}
resolve();
});
});
}
saveSession (req) {
return new Promise((resolve, reject) => {
req.session.save((err) => {
if (err) {
return reject(err);
}
resolve();
});
});
}
isValidString (text) {
return text && (typeof text === 'string') && (text.length > 0);
}
loadAppTemplate (type, name) {
return pug.compileFile(path.join(this.appTemplateRoot, type, name));
}
loadViewTemplate (filename) {
const scriptFile = path.join(this.dtp.config.root, 'app', 'views', filename);
return pug.compileFile(scriptFile);
}
}
module.exports.SiteCommon = SiteCommon;