parseResponseBody method
Response parsing.
dataRaw response.completerCallback.responseThe original resposne object.
Implementation
Future<Map<String, dynamic>> parseResponseBody({
required String data,
required Completer<Map<String, dynamic>> completer,
Response<dynamic>? response,
}) {
// String decryptResponseJson = encrypt.decrypt64(data, iv: iv);
String decryptResponseJson = data;
if (decryptResponseJson.isEmpty) {
return Future<Map<String, dynamic>>.value(
{"error": 'Error decrypt data: ${response?.data}'},
);
}
dynamic responseDataObj = json.decode(decryptResponseJson);
if (responseDataObj is! Map<String, dynamic>) {
return Future<Map<String, dynamic>>.value(
{"error": 'Error parsed response data: ${response?.data}'},
);
}
dynamic respCode = responseDataObj[http.config.keys.responseCode];
if (respCode is String) {
if (respCode == http.config.codes.tokenExpired) {
http.config.callbacks?.handleTokenExpiredAction(http, responseDataObj);
} else if (respCode == http.config.codes.lowVersion) {
http.config.callbacks?.handleUpdatesAction(http, responseDataObj);
}
}
completer.complete(Future<Map<String, dynamic>>.value(
responseDataObj as FutureOr<Map<String, dynamic>>?)
);
return completer.future;
}