getCustomerReturns method

Future<List<Return>> getCustomerReturns({
  1. int page = 1,
  2. int pageSize = 20,
  3. Map<String, dynamic>? filters,
})

Get customer returns

Implementation

Future<List<Return>> getCustomerReturns({
  int page = 1,
  int pageSize = 20,
  Map<String, dynamic>? filters,
}) async {
  try {
    String url =
        '/rest/V1/returns?searchCriteria[currentPage]=$page&searchCriteria[pageSize]=$pageSize';

    if (filters != null) {
      filters.forEach((key, value) {
        url +=
            '&searchCriteria[filterGroups][0][filters][0][field]=$key&searchCriteria[filterGroups][0][filters][0][value]=$value';
      });
    }

    final response = await _client.authenticatedRequest<Map<String, dynamic>>(
      url,
    );

    if (response.statusCode == 200) {
      final List<dynamic> returns = response.data!['items'] ?? [];
      return returns
          .map((returnItem) => Return.fromJson(returnItem))
          .toList();
    } else {
      throw Exception(
        'Failed to get customer returns: ${response.statusMessage}',
      );
    }
  } on DioException catch (e) {
    throw Exception('Failed to get customer returns: ${e.message}');
  } catch (e) {
    throw Exception('Failed to get customer returns: $e');
  }
}