publishUserAvatar method
Publish the avatar data, base64
, on the pubsub node using hash
as
the item id. hash
must be the SHA-1 hash of the image data, while
base64
must be the base64-encoded version of the image data.
Implementation
Future<Result<AvatarError, bool>> publishUserAvatar(
String base64,
String hash,
bool public,
) async {
final pubsub = _getPubSubManager();
final result = await pubsub.publish(
getAttributes().getFullJID().toBare(),
userAvatarDataXmlns,
XMLNode.xmlns(
tag: 'data',
xmlns: userAvatarDataXmlns,
text: base64,
),
id: hash,
options: PubSubPublishOptions(
accessModel: public ? 'open' : 'roster',
),
);
if (result.isType<PubSubError>()) return Result(UnknownAvatarError());
return const Result(true);
}