getCommunitiesBulkAWSData method
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;
}
}
}