addFeedToHashtags method
Implementation
Future<void> addFeedToHashtags({
required final String feedId,
required final List<String> hashtags,
}) async {
for (final hashtag in hashtags) {
final splittedHashtag = hashtag.split(' ');
assert(splittedHashtag.length == 1, 'Invalid hashtag - $hashtag');
}
final currentTime = DateTime.now().millisecondsSinceEpoch;
try {
final futures = <Future>[];
for (var hashtag in hashtags) {
hashtag = hashtag.replaceAll('#', '');
final hashtagRef = PeamanReferenceHelper.hashtagDoc(
hashtag: hashtag,
);
final future = hashtagRef.set({
'id': hashtag,
'title': hashtag,
'feeds': FieldValue.increment(1),
'visibility': true,
'search_keys': PeamanCommonHelper.getSearchKeys(text: hashtag),
'updated_at': currentTime,
}, SetOptions(merge: true)).then((value) {
final hashtagFeedRef = PeamanReferenceHelper.hashtagFeedsCol(
hashtag: hashtag,
).doc(feedId);
final hashtagFeed = PeamanHashtagFeed(
id: feedId,
createdAt: currentTime,
updatedAt: currentTime,
);
return hashtagFeedRef.set(hashtagFeed.toJson());
});
futures.add(future);
}
await Future.wait(futures);
print('Success: Adding feed - $feedId to hashtags - $hashtags');
} catch (e) {
print(e);
print('Error!!!: Adding feed - $feedId to hashtags - $hashtags');
}
}