requestWithTargetedData static method

Future Function() requestWithTargetedData(
  1. Future<ApiResponse> request(),
  2. bool targettedDataValidator(
    1. dynamic
    )
)

Implementation

static Future<dynamic> Function() requestWithTargetedData(
    Future<ApiResponse> Function() request,
    bool Function(dynamic) targettedDataValidator) {
  return () async {
    try {
      var response = await request();
      if (targettedDataValidator(response.data)) {
        // the response met the targetted data
        return;
      } else {
        throw Exception('Invalid response data: ${response.data}');
      }
    } catch (e) {
      rethrow;
    }
  };
}