queryById method
Implementation
void queryById({String? beforeId, String? afterId, Jid? jid}) {
if (beforeId == null && afterId == null && jid == null) {
queryAll();
} else {
var iqStanza = IqStanza(AbstractStanza.getRandomId(), IqStanzaType.SET);
var query = QueryElement();
query.setXmlns('urn:xmpp:mam:2');
query.setQueryId(AbstractStanza.getRandomId());
iqStanza.addChild(query);
var x = XElement.build();
x.setType(FormType.SUBMIT);
query.addChild(x);
x.addField(FieldElement.build(
varAttr: 'FORM_TYPE', typeAttr: 'hidden', value: 'urn:xmpp:mam:2'));
if (beforeId != null) {
x.addField(FieldElement.build(varAttr: 'beforeId', value: beforeId));
}
if (afterId != null) {
x.addField(FieldElement.build(varAttr: 'afterId', value: afterId));
}
if (jid != null) {
x.addField(FieldElement.build(varAttr: 'with', value: jid.userAtDomain));
}
_connection.writeStanza(iqStanza);
}
}