getCommunitiesBulkAWSData method

Future<List<Communities>> getCommunitiesBulkAWSData(
  1. List userJoinedCommunities
)

Implementation

Future<List<Communities>> getCommunitiesBulkAWSData(
    final List userJoinedCommunities) async {
  try {
    final List body = userJoinedCommunities;

    /* final request = client.request(ApiConfig.communitiesBulkPath,
        method: "POST", body: json.encode(body));

    request.headers.addAll(<String, String>{
      "x-api-key": ApiConfig.apiKey,
      "content-type": "application/json",
      "cdauthtoken": "Bearer ${ApiConfig.idToken}"
    });
    final value = await http.post(request.url,
        headers: request.headers, body: request.body);
*/

    final SharedPreferences prefs = await _prefs;
    final String? kcuserId = prefs.getString(ApiConfig.kcUserId); // To Do
    final String? apiKey = prefs.getString(ApiConfig.kcAPIKey);
    final Dio dio = Dio();
    final value = await dio.post(
      ApiConfig.kcCommunitiesBulkPath,
      options: Options(
        headers: {
          "x-api-key": apiKey,
          "content-type": "application/json",
          "kcuserid": kcuserId
        },
      ),
      data: body,
    );

    final jsonData = value.data;
    final List<Communities> bulkGroupResponse = [];
    final List<String> stringData = [];
    // ignore: avoid_dynamic_calls
    for (final feed in jsonData) {
      // ignore: avoid_dynamic_calls
      final Communities feedPost =
      Communities.fromJson(feed as Map<String, dynamic>);
      bulkGroupResponse.add(feedPost);
      stringData.add(jsonEncode(feed));
      final SharedPreferences prefs = await _prefs;
      await prefs.setStringList("communitiesBulkDara", stringData);
    }
    return bulkGroupResponse;
  } catch (error) {
    final SharedPreferences prefs = await _prefs;
    final List<Communities> bulkGroupResponse = [];
    if (prefs.getStringList("communitiesBulkDara") != null) {
      final List<String> postsPref =
      prefs.getStringList("communitiesBulkDara")!;

      // ignore: avoid_dynamic_calls
      for (final community in postsPref) {
        // ignore: avoid_dynamic_calls
        final Communities communityPost = Communities.fromJson(
            jsonDecode(community) as Map<String, dynamic>);
        bulkGroupResponse.add(communityPost);
      }
      return bulkGroupResponse;
    } else {
      rethrow;
    }
  }
}