This commit is contained in:
2020-09-16 17:04:37 +00:00
parent 7b18f4e270
commit 3dc5f8134c
4 changed files with 73 additions and 52 deletions

View File

@@ -56,6 +56,60 @@ function dealWithError(msg, vm) {
//why two error properties?
window.$gz.form.setErrorBoxErrors(vm);
}
///////////////////////////////////////////////////////////////////////////////////
// DECODE ERROR TO TEXT
// accept an unknown type of error variable
// and return human readable text
//
function decodeError(e, vm) {
//empty?
if (e == null || e == "") {
return "errorHandler::decodeError - Error is unknown / empty";
}
//an Error object?
if (e instanceof Error) {
return `Error - Name:${e.name}, Message:${e.message}`;
}
//API error object?
if (e.error) {
let err = e.error;
// {
// "code": "2002",
// "message": "See server log for details",
// "target": "Server internal error"
// }
let msg = "";
if (err.code) {
msg += err.code;
msg += " - ";
if (vm) {
msg += vm.$ay.t("ErrorAPI" + err.code);
}
msg += "\n";
}
if (err.target) {
msg += err.target;
msg += "\n";
}
if (err.message) {
msg += err.message;
msg += "\n";
}
return msg;
}
//Javascript Fetch API Response object?
if (e instanceof Response) {
return `http error: ${err.statusText} - ${err.status} Url: ${err.url}`;
}
//last resort
return JSON.stringify(e);
}
export default {
handleGeneralError(message, source, lineno, colno, error) {
let msg = "General error: \n" + message;
@@ -77,7 +131,7 @@ export default {
dealWithError(msg);
},
handleVueError(err, vm, info) {
let msg = "Vue error: \n" + err;
let msg = "Vue error: \n" + decodeError(err, vm);
if (err.fileName) {
msg += "\nfilename: " + err.fileName;
}
@@ -90,65 +144,21 @@ export default {
if (err.stack) {
msg += "\nSTACK:\n " + err.stack;
}
dealWithError(msg);
dealWithError(msg, vm);
},
handleVueWarning(wmsg, vm, trace) {
let msg = "Vue warning: \n" + wmsg;
// if (vm) {
// msg += "\nvm present ";
// }
let msg = "Vue warning: \n" + decodeError(wmsg, vm);
if (trace) {
msg += "\ntrace: " + trace;
}
dealWithError(msg);
dealWithError(msg, vm);
},
/////////////////////////////////////////////////
// translate, log and return error
//
handleFormError(err, vm) {
//called inside forms when things go unexpectedly wrong
//returns the translated message in case the form wants to display it as well
if (err instanceof Error && err.message) {
dealWithError(err.message, vm);
} else if (err.error) {
//it's an api error return object, translate and display correctly
err = err.error;
// {
// "code": "2002",
// "message": "See server log for details",
// "target": "Server internal error"
// }
let msg = "";
if (err.code) {
msg += err.code;
msg += " - ";
msg += vm.$ay.t("ErrorAPI" + err.code);
msg += "\n";
}
if (err.target) {
msg += err.target;
msg += "\n";
}
if (err.message) {
msg += err.message;
msg += "\n";
}
dealWithError(msg, vm);
} else if (err instanceof Response) {
let msg =
"http error: " +
err.statusText +
" - " +
err.status +
" Url: " +
err.url;
dealWithError(msg, vm);
} else {
//last resort
let msg = JSON.stringify(err);
dealWithError(msg, vm);
}
dealWithError(decodeError(err, vm), vm);
}
};
/*