72 lines
No EOL
1.9 KiB
JavaScript
72 lines
No EOL
1.9 KiB
JavaScript
'use strict';
|
|
|
|
const config = require('config');
|
|
const urllib = require('url');
|
|
const {anonymousRestrictedAccessToken} = require('../../shared/urls');
|
|
const {getLangCodeFromExpressLocale} = require('./translate');
|
|
|
|
function getTrustedUrlBase() {
|
|
return urllib.resolve(config.www.trustedUrlBase, '');
|
|
}
|
|
|
|
function getSandboxUrlBase() {
|
|
return urllib.resolve(config.www.sandboxUrlBase, '');
|
|
}
|
|
|
|
function getPublicUrlBase() {
|
|
return urllib.resolve(config.www.publicUrlBase, '');
|
|
}
|
|
|
|
function _getUrl(urlBase, path, opts) {
|
|
const url = new URL(path || '', urlBase);
|
|
|
|
if (opts && opts.locale) {
|
|
url.searchParams.append('locale', getLangCodeFromExpressLocale(opts.locale));
|
|
}
|
|
|
|
return url.toString();
|
|
}
|
|
|
|
function getTrustedUrl(path, opts) {
|
|
return _getUrl(config.www.trustedUrlBase, path || '', opts);
|
|
}
|
|
|
|
function getSandboxUrl(path, context, opts) {
|
|
if (context && context.user && context.user.restrictedAccessToken) {
|
|
return _getUrl(config.www.sandboxUrlBase, context.user.restrictedAccessToken + '/' + (path || ''), opts);
|
|
} else {
|
|
return _getUrl(config.www.sandboxUrlBase, anonymousRestrictedAccessToken + '/' + (path || ''), opts);
|
|
}
|
|
}
|
|
|
|
function getPublicUrl(path, opts) {
|
|
return _getUrl(config.www.publicUrlBase, path || '', opts);
|
|
}
|
|
|
|
|
|
function getTrustedUrlBaseDir() {
|
|
const mailtrainUrl = urllib.parse(config.www.trustedUrlBase);
|
|
return mailtrainUrl.pathname;
|
|
}
|
|
|
|
function getSandboxUrlBaseDir() {
|
|
const mailtrainUrl = urllib.parse(config.www.sandboxUrlBase);
|
|
return mailtrainUrl.pathname;
|
|
}
|
|
|
|
function getPublicUrlBaseDir() {
|
|
const mailtrainUrl = urllib.parse(config.www.publicUrlBase);
|
|
return mailtrainUrl.pathname;
|
|
}
|
|
|
|
module.exports = {
|
|
getTrustedUrl,
|
|
getSandboxUrl,
|
|
getPublicUrl,
|
|
getTrustedUrlBase,
|
|
getSandboxUrlBase,
|
|
getPublicUrlBase,
|
|
getTrustedUrlBaseDir,
|
|
getSandboxUrlBaseDir,
|
|
getPublicUrlBaseDir
|
|
}; |