This commit is contained in:
2020-06-13 15:42:57 +00:00
parent fa3a0fc106
commit bb8001bb3e
3 changed files with 46 additions and 13 deletions

View File

@@ -105,8 +105,33 @@ export default {
//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 {
//TODO: this is pretty bad
//last resort
let msg = JSON.stringify(err);
dealWithError(msg, vm);
}

View File

@@ -457,16 +457,22 @@ export default {
let that = this;
//determine if this is a new or existing record
let fetchOptions = undefined;
if (data.concurrency) {
//has concurrency token, so this is a PUT as it's updating an existing record
fetchOptions = that.fetchPutOptions(data);
} else {
//Does not have a concurrency token so this is a POST as it's posting a new record without a concurrency token
fetchOptions = that.fetchPostOptions(data);
//ensure the route doesn't end in /0 which will happen if it's a new record since the edit forms just send the url here with the ID regardless
if (window.$gz._.endsWith(route, "/0")) {
route = route.slice(0, -2);
if (data) {
//data can be blank in a post that triggers an action
if (data.concurrency) {
//has concurrency token, so this is a PUT as it's updating an existing record
fetchOptions = that.fetchPutOptions(data);
} else {
//Does not have a concurrency token so this is a POST as it's posting a new record without a concurrency token
fetchOptions = that.fetchPostOptions(data);
//ensure the route doesn't end in /0 which will happen if it's a new record since the edit forms just send the url here with the ID regardless
if (window.$gz._.endsWith(route, "/0")) {
route = route.slice(0, -2);
}
}
} else {
//no data, so this is likely just a trigger post
fetchOptions = that.fetchPostOptions(data);
}
let r = await fetch(that.APIUrl(route), fetchOptions);
that.statusEx(r);