getErrorData function
Implementation
ErrorData getErrorData(String responseData) {
final genericError = {'error': ['Something went wrong. Please contact your merchant.']};
final errorData = ErrorData(
status: 400,
error: genericError,
);
try {
final jsonData = jsonDecode(responseData);
if (jsonData is! Map) {
return errorData;
}
final statusCode = jsonData['status'] as int?;
if (statusCode == null) {
return errorData;
}
switch (statusCode) {
case 403:
errorData.error = jsonData['error']['message'];
break;
case 400:
if (jsonData.containsKey('errors')) {
errorData.status = 3009;
errorData.error = jsonData['errors'];
}
break;
case 500:
errorData.status = 500;
errorData.error = jsonData['error'];
break;
default:
errorData.error = genericError;
}
} on FormatException catch (e) {
errorData.error = genericError;
log(e.toString());
}
return errorData;
}