processAndHandleResponse method
dynamic
processAndHandleResponse(
- Response response
ApiService Process and return response
Implementation
dynamic processAndHandleResponse(Response<dynamic> response) {
_debugLog(
'Processing Response - Type: ${response.runtimeType}, Status: ${response.statusCode}');
ApiSuccess apiSuccess = ApiSuccess();
apiSuccess.statusCode = (response.statusCode ?? codeTimeOut);
ApiError apiError = ApiError();
apiError.statusCode = (response.statusCode ?? codeTimeOut);
var isSuccess = response.isOk && response.body != null;
if (isSuccess) {
apiSuccess.data = response.body;
_debugLog('Success Response - Data Type: ${apiSuccess.data.runtimeType}');
_handleResponse(apiSuccess);
} else {
apiError.statusCode = (response.statusCode ?? codeTimeOut);
_debugLog('Error Response - Status Code: ${apiError.statusCode}',
isError: true);
if (_allowedStatusCodes.contains(response.statusCode)) {
apiError.message = response.bodyString!;
apiError.errorObject = jsonDecode(response.bodyString!);
_debugLog('Status 200 Error - Body: ${response.bodyString}',
isError: true);
}
if (response.statusCode == 422) {
apiError.message = response.bodyString!;
apiError.errorObject = jsonDecode(response.bodyString!);
_debugLog('Validation Error (422) - Body: ${response.bodyString}',
isError: true);
} else {
_debugLog('Error Status Text: ${response.statusText}', isError: true);
response.statusText!;
}
_handleErrorResponse(apiError);
}
return (isSuccess ? apiSuccess : apiError);
}