getItems method
Implementation
Future<Result<PubSubError, List<PubSubItem>>> getItems(
JID jid,
String node, {
int? maxItems,
}) async {
final result = (await getAttributes().sendStanza(
StanzaDetails(
Stanza.iq(
type: 'get',
to: jid.toString(),
children: [
XMLNode.xmlns(
tag: 'pubsub',
xmlns: pubsubXmlns,
children: [
XMLNode(
tag: 'items',
attributes: {
'node': node,
if (maxItems != null) 'max_items': maxItems.toString(),
},
),
],
),
],
),
shouldEncrypt: false,
),
))!;
if (result.attributes['type'] != 'result') {
return Result(getPubSubError(result));
}
final pubsub = result.firstTag('pubsub', xmlns: pubsubXmlns);
if (pubsub == null) {
return Result(getPubSubError(result));
}
final items = pubsub.firstTag('items')!.children.map((item) {
return PubSubItem(
id: item.attributes['id']! as String,
payload: item.children[0],
node: node,
);
}).toList();
return Result(items);
}