getLatestMetadata method
- JID jid
Attempts to fetch the latest item from the User Avatar metadata node. Returns the list of metadata contained within it. The list may be empty.
If an error occured, returns an AvatarError.
Implementation
Future<Result<AvatarError, List<UserAvatarMetadata>>> getLatestMetadata(
JID jid,
) async {
final resultsRaw = await _getPubSubManager()
.getItems(jid, userAvatarMetadataXmlns, maxItems: 1);
if (resultsRaw.isType<PubSubError>()) return Result(UnknownAvatarError());
final results = resultsRaw.get<List<PubSubItem>>();
if (results.isEmpty) {
return Result(UnknownAvatarError());
}
return Result(
results.first.payload
.findTags('info')
.map(UserAvatarMetadata.fromXML)
.toList(),
);
}