fetchSettlements method

Future<Response<RazorpayApiResponse<RazorpayTransfer>>> fetchSettlements({
  1. RazorpayPaginationOptions? pageParams,
  2. void callback(
    1. RazorpayApiException?,
    2. Response<RazorpayApiResponse<RazorpayTransfer>>?
    )?,
})

Fetch settlement details for transfers (using expand) Note: This specific JS function might be redundant if 'all' supports expand. Kept for parity, but using 'expand' with 'all' might be preferred.

Implementation

Future<Response<RazorpayApiResponse<RazorpayTransfer>>> fetchSettlements({
  RazorpayPaginationOptions? pageParams, // Added pagination
  void Function(
    RazorpayApiException?,
    Response<RazorpayApiResponse<RazorpayTransfer>>?,
  )? callback,
}) async {
  // Use the 'all' method with expand parameter
  final transferQuery = RazorpayTransferQuery(
    from: pageParams?.from,
    to: pageParams?.to,
    count: pageParams?.count,
    skip: pageParams?.skip,
    // expand: ['recipient_settlement'] // Assuming this is the correct expand key
  );

  // Build query parameters carefully
  final queryParams = {
    ...transferQuery.toJson(),
    'expand[]': 'recipient_settlement', // Hardcode expand here
  };
  queryParams.removeWhere((key, value) => value == null);

  return api.get<RazorpayApiResponse<RazorpayTransfer>>(
    {
      'url': '/transfers',
      'data': queryParams,
    },
    callback: callback,
    fromJsonFactory: (json) => RazorpayApiResponse<RazorpayTransfer>.fromJson(
      json,
      (itemJson) =>
          RazorpayTransfer.fromJson(itemJson! as Map<String, dynamic>),
    ),
  );
}