@availity/api-axios
Version:
Wrappers for axios designed to work with the Availity portal
49 lines (38 loc) • 1.22 kB
JavaScript
import flattenObject from '../flatten-object';
import AvMicroserviceApi from '../ms';
export default class AvLogMessagesApiV2 extends AvMicroserviceApi {
constructor(config) {
super({
name: 'spc/analytics/log',
...config,
});
}
send(level, entries) {
delete entries.level;
const payload = { level, entries };
const flattened = flattenObject(payload);
flattened.X_Client_ID = this.clientId;
flattened.X_XSRF_TOKEN = document.cookie.replace(/(?:(?:^|.*;\s*)XSRF-TOKEN\s*=\s*([^;]*).*$)|^.*$/, '$1');
const fields = Object.keys(flattened)
.map((key) => {
const name = key.replaceAll(/\[\d+]/g, '[]');
const value = flattened[key];
return `${name}=${encodeURIComponent(value)}`;
})
.join('&');
return fields;
}
async debug(entries) {
return this.sendBeacon(this.send('debug', entries));
}
async info(entries) {
return this.sendBeacon(this.send('info', entries));
}
async warn(entries) {
return this.sendBeacon(this.send('warn', entries));
}
async error(entries) {
return this.sendBeacon(this.send('error', entries));
}
}
export const avLogMessagesApiV2 = new AvLogMessagesApiV2();