onResponse method
Called when the response is about to be resolved.
Implementation
@override
void onResponse(
Response response,
ResponseInterceptorHandler handler,
) {
final raw = extractData?.call(response) ?? response.data;
final result = validatePayload(
raw: raw,
schema: schema,
guard: guard,
);
switch (result) {
case FlodSuccess(data: final data):
handler.next(
Response(
requestOptions: response.requestOptions,
data: _toResponseData(data),
statusCode: response.statusCode,
statusMessage: response.statusMessage,
headers: response.headers,
isRedirect: response.isRedirect,
redirects: response.redirects,
extra: response.extra,
),
);
case FlodFailure(errors: final errors):
handler.reject(
DioException(
requestOptions: response.requestOptions,
response: response,
type: DioExceptionType.badResponse,
error: ValidationException(errors),
message: 'Response validation failed (${errors.length} error(s))',
),
);
}
}