@interaktiv/mibuilder-core
Version:
Core libraries to interact with MiBuilder projects.
46 lines (35 loc) • 1.13 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.fetchStatus = fetchStatus;
var _axios = _interopRequireDefault(require("axios"));
var _mibuilderError = require("../mibuilder-error");
var _ux = require("../ux");
const MESSAGE_FOR_STATUS = {
DEACTIVATED: 'Der Servicecode steht zur Zeit nicht mehr zur Verfügung'
};
async function fetchStatus(url) {
(await _ux.UX.create('request-consultant-status')).debug(`Request consultant status from: ${url}`);
let result;
try {
result = await _axios.default.get(url, {
responseType: 'json',
timeout: 4000
});
} catch (err) {
throw new _mibuilderError.MiBuilderError(`Fehler beim Abruf des Consultant Status "${err.message}"`, err.code);
}
const {
data
} = result;
const {
meta = {}
} = data;
if (meta.status === 'OK') {
return data.payload;
}
const errorMessage = MESSAGE_FOR_STATUS[meta.status] || meta.msg;
throw new _mibuilderError.MiBuilderError(errorMessage, 'ConsultantStatusError');
}