# HG changeset patch # User Goffi # Date 1619108392 -7200 # Node ID 9d9fb871a75cca6a6558a3d580ea7734607eb08b # Parent 375449da79f68647471e6deffdc754b79220cebd plugin list: `delete` implementation: `delete` is similar to XEP-0060's retractItem, but node is set to default ticket one if not specified. diff -r 375449da79f6 -r 9d9fb871a75c sat/plugins/plugin_misc_lists.py --- a/sat/plugins/plugin_misc_lists.py Thu Apr 22 18:18:09 2021 +0200 +++ b/sat/plugins/plugin_misc_lists.py Thu Apr 22 18:19:52 2021 +0200 @@ -249,6 +249,14 @@ async_=True, ) host.bridge.addMethod( + "listDeleteItem", + ".plugin", + in_sign="sssbs", + out_sign="", + method=self._delete, + async_=True, + ) + host.bridge.addMethod( "listSchemaGet", ".plugin", in_sign="sss", @@ -340,7 +348,7 @@ - 'updated' is set everytime @param extra(dict, None): same as for [XEP-0060.sendItem] with additional keys: - update(bool): if True, get previous item data to merge with current one - if True, item_id must be None + if True, item_id must be set other arguments are same as for [self._s.sendDataFormItem] @return (unicode): id of the created item """ @@ -376,6 +384,32 @@ client, service, node, values, schema, item_id, extra, deserialise, form_ns ) + def _delete( + self, service_s, nodeIdentifier, itemIdentifier, notify, profile_key + ): + client = self.host.getClient(profile_key) + return defer.ensureDeferred(self.delete( + client, + jid.JID(service_s) if service_s else None, + nodeIdentifier, + itemIdentifier, + notify + )) + + async def delete( + self, + client: SatXMPPEntity, + service: Optional[jid.JID], + node: Optional[str], + itemIdentifier: str, + notify: Optional[bool] = None + ) -> None: + if not node: + node = self.namespace + return await self._p.retractItems( + service, node, (itemIdentifier,), notify, client.profile + ) + def _listsList(self, service, node, profile): service = jid.JID(service) if service else None node = node or None