getSenders method

Future<Map<String, dynamic>> getSenders()

Get sender names

Implementation

Future<Map<String, dynamic>> getSenders() async {
  try {
    var page = 1;
    final allSenders = <String>[];
    final defaultSenders = <String>[];
    Map<String, dynamic> items;

    do {
      final response = await _client.get(
        Uri.parse('$_apiBaseUrl/account/area/senders')
            .replace(queryParameters: {
          'page': page.toString(),
          'return_collection': '1',
        }),
        headers: _headers,
      );

      final data = jsonDecode(response.body);
      if (!data['success']) {
        throw data['error'];
      }

      items = data['items'];
      for (final item in items['data']) {
        final senderName = item['sender_name'];
        allSenders.add(senderName);
        if (item['is_default'] == 1) {
          defaultSenders.add(senderName);
        }
      }

      page++;
    } while (page <= items['last_page']);

    return {
      'success': true,
      'all_senders': allSenders,
      'default_senders': defaultSenders,
      'message': 'تم',
    };
  } catch (e) {
    return {
      'success': false,
      'error': e.toString(),
    };
  }
}