-
Notifications
You must be signed in to change notification settings - Fork 0
Cookbook: manipulate responses
Eugene Lazutkin edited this page Nov 26, 2019
·
3 revisions
This is part of the main module. See main for the full documentation.
const prevProcessFailure = io.processFailure;
io.processFailure = failure => {
if (failure instanceof io.FailedIO) {
alert('We cannot initiate I/O. You are likely offline.');
}
return prevProcessFailure(failure);
};Show errors at the application level:
const prevProcessFailure = io.processFailure;
io.processFailure = failure => {
if (failure instanceof io.BadStatus && failure.xhr) {
showToaster({
code: failure.xhr.status,
msg: failure.xhr.message,
time: 5000
});
}
return prevProcessFailure(failure);
};Process authorization errors at an application level:
let shownSessionExpiredMessage = false,
shownAccessIsDeniedMessage = false;
const prevProcessFailure = io.processFailure;
io.processFailure = failure => {
if (failure instanceof io.BadStatus && failure.xhr) {
if (failure.xhr.status === 401) {
// unauthenticated
if (!shownSessionExpiredMessage) {
alert('Session has expired. You have to re-login.');
shownSessionExpiredMessage = true;
login();
}
}
if (failure.xhr.status === 403) {
// not authorized
if (!shownAccessIsDeniedMessage) {
alert('Insufficient permissions.');
shownAccessIsDeniedMessage = true;
// login();
}
}
}
return prevProcessFailure(failure);
};