terriajs
Version:
Geospatial data visualization platform.
52 lines (46 loc) • 1.37 kB
JavaScript
const defined = require("terriajs-cesium/Source/Core/defined").default;
const loadWithXhr = require("../Core/loadWithXhr");
const TerriaError = require("../Core/TerriaError").default;
var i18next = require("i18next").default;
function getToken(terria, tokenUrl, url) {
const options = {
url: tokenUrl,
method: "POST",
headers: { "Content-Type": "application/json" },
data: JSON.stringify({
url: url
})
};
return loadWithXhr(options)
.then(function (result) {
const tokenResponse = JSON.parse(result);
if (!defined(tokenResponse.token)) {
throw new TerriaError({
title: i18next.t("models.getToken.errorTitle"),
message: i18next.t("models.getToken.invalidToken", {
email:
'<a href="mailto:' +
terria.supportEmail +
'">' +
terria.supportEmail +
"</a>."
})
});
}
return tokenResponse.token;
})
.catch(() => {
throw new TerriaError({
title: i18next.t("models.getToken.errorTitle"),
message: i18next.t("models.getToken.unableToRequest", {
email:
'<a href="mailto:' +
terria.supportEmail +
'">' +
terria.supportEmail +
"</a>."
})
});
});
}
module.exports = getToken;