mapData<R> method

Future<ApiResponse<R>> mapData<R>(
  1. R transform(
    1. T data
    )
)

Transform data type on success.

final res = await api.get<String>(endpoint: '/count')
    .mapData((s) => int.parse(s));

Implementation

Future<ApiResponse<R>> mapData<R>(R Function(T data) transform) async {
  final res = await this;
  if (res.isSuccess && res.data != null) {
    return ApiResponse<R>.success(
      data: transform(res.data as T),
      message: res.message,
      statusCode: res.statusCode,
      raw: res.raw,
      requestId: res.requestId,
      responseTime: res.responseTime,
    );
  }
  return ApiResponse<R>.failure(
    message: res.message,
    statusCode: res.statusCode,
    errors: res.errors,
    requestId: res.requestId,
    responseTime: res.responseTime,
  );
}