mirror of
https://github.com/inventree/inventree-app.git
synced 2025-04-28 13:36:50 +00:00
Refactor sentry error reporting for model class
This commit is contained in:
parent
7c36659fe9
commit
610f6533d0
@ -233,6 +233,32 @@ class InvenTreeModel {
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> reportModelError(String title, APIResponse response, {Map<String, String> context = {}}) async {
|
||||||
|
|
||||||
|
String dataString = response.data?.toString() ?? "null";
|
||||||
|
|
||||||
|
if (dataString.length > 500) {
|
||||||
|
dataString = dataString.substring(0, 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add some default context data
|
||||||
|
|
||||||
|
context["url"] = response.url.toString();
|
||||||
|
context["statusCode"] = response.statusCode.toString();
|
||||||
|
context["responseData"] = dataString;
|
||||||
|
context["valid"] = response.isValid().toString();
|
||||||
|
context["error"] = response.error;
|
||||||
|
context["errorDetail"] = response.errorDetail;
|
||||||
|
context["isNull"] = response.data == null ? "true" : "false";
|
||||||
|
context["dataType"] = response.data?.runtimeType.toString() ?? "null";
|
||||||
|
context["model"] = URL;
|
||||||
|
|
||||||
|
await sentryReportMessage(
|
||||||
|
title,
|
||||||
|
context: context,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/// Delete the instance on the remote server
|
/// Delete the instance on the remote server
|
||||||
/// Returns true if the operation was successful, else false
|
/// Returns true if the operation was successful, else false
|
||||||
Future<bool> delete() async {
|
Future<bool> delete() async {
|
||||||
@ -240,18 +266,10 @@ class InvenTreeModel {
|
|||||||
|
|
||||||
if (!response.isValid() || response.data == null || (response.data is! Map)) {
|
if (!response.isValid() || response.data == null || (response.data is! Map)) {
|
||||||
|
|
||||||
if (response.statusCode > 0) {
|
reportModelError(
|
||||||
await sentryReportMessage(
|
|
||||||
"InvenTreeModel.delete() returned invalid response",
|
"InvenTreeModel.delete() returned invalid response",
|
||||||
context: {
|
response,
|
||||||
"url": url,
|
|
||||||
"statusCode": response.statusCode.toString(),
|
|
||||||
"data": response.data?.toString() ?? "null",
|
|
||||||
"error": response.error,
|
|
||||||
"errorDetail": response.errorDetail,
|
|
||||||
}
|
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
showServerError(
|
showServerError(
|
||||||
L10().serverError,
|
L10().serverError,
|
||||||
@ -274,20 +292,13 @@ class InvenTreeModel {
|
|||||||
|
|
||||||
if (!response.isValid() || response.data == null || (response.data is! Map)) {
|
if (!response.isValid() || response.data == null || (response.data is! Map)) {
|
||||||
|
|
||||||
// Report error
|
reportModelError(
|
||||||
if (response.statusCode > 0) {
|
|
||||||
await sentryReportMessage(
|
|
||||||
"InvenTreeModel.reload() returned invalid response",
|
"InvenTreeModel.reload() returned invalid response",
|
||||||
|
response,
|
||||||
context: {
|
context: {
|
||||||
"url": url,
|
"pk": pk.toString(),
|
||||||
"statusCode": response.statusCode.toString(),
|
|
||||||
"data": response.data?.toString() ?? "null",
|
|
||||||
"valid": response.isValid().toString(),
|
|
||||||
"error": response.error,
|
|
||||||
"errorDetail": response.errorDetail,
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
);
|
||||||
|
|
||||||
showServerError(
|
showServerError(
|
||||||
L10().serverError,
|
L10().serverError,
|
||||||
@ -347,19 +358,15 @@ class InvenTreeModel {
|
|||||||
|
|
||||||
if (!response.isValid() || response.data == null || response.data is! Map) {
|
if (!response.isValid() || response.data == null || response.data is! Map) {
|
||||||
|
|
||||||
if (response.statusCode > 0) {
|
// Report error
|
||||||
await sentryReportMessage(
|
reportModelError(
|
||||||
"InvenTreeModel.get() returned invalid response",
|
"InvenTreeModel.getModel() returned invalid response",
|
||||||
|
response,
|
||||||
context: {
|
context: {
|
||||||
"url": url,
|
"filters": filters.toString(),
|
||||||
"statusCode": response.statusCode.toString(),
|
"pk": pk,
|
||||||
"data": response.data?.toString() ?? "null",
|
|
||||||
"valid": response.isValid().toString(),
|
|
||||||
"error": response.error,
|
|
||||||
"errorDetail": response.errorDetail,
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
showServerError(
|
showServerError(
|
||||||
L10().serverError,
|
L10().serverError,
|
||||||
@ -394,26 +401,19 @@ class InvenTreeModel {
|
|||||||
// Invalid response returned from server
|
// Invalid response returned from server
|
||||||
if (!response.isValid() || response.data == null || response.data is! Map) {
|
if (!response.isValid() || response.data == null || response.data is! Map) {
|
||||||
|
|
||||||
if (response.statusCode > 0) {
|
reportModelError(
|
||||||
await sentryReportMessage(
|
|
||||||
"InvenTreeModel.create() returned invalid response",
|
"InvenTreeModel.create() returned invalid response",
|
||||||
|
response,
|
||||||
context: {
|
context: {
|
||||||
"url": url,
|
"pk": pk.toString(),
|
||||||
"statusCode": response.statusCode.toString(),
|
|
||||||
"data": response.data?.toString() ?? "null",
|
|
||||||
"valid": response.isValid().toString(),
|
|
||||||
"error": response.error,
|
|
||||||
"errorDetail": response.errorDetail,
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
showServerError(
|
showServerError(
|
||||||
L10().serverError,
|
L10().serverError,
|
||||||
L10().errorCreate,
|
L10().errorCreate,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user