diff sat/plugins/plugin_misc_tickets.py @ 3309:71761e9fb984

plugins tickets, merge-requests: `ticketsGet` and `mergeRequestsGet` serialisation: those methods now return data serialised with `data_format.serialise`
author Goffi <goffi@goffi.org>
date Thu, 16 Jul 2020 09:07:26 +0200
parents 559a625a236b
children bb0225aaf4e6
line wrap: on
line diff
--- a/sat/plugins/plugin_misc_tickets.py	Thu Jul 16 09:07:20 2020 +0200
+++ b/sat/plugins/plugin_misc_tickets.py	Thu Jul 16 09:07:26 2020 +0200
@@ -1,6 +1,5 @@
 #!/usr/bin/env python3
 
-
 # SAT plugin for Pubsub Schemas
 # Copyright (C) 2009-2020 Jérôme Poisson (goffi@goffi.org)
 
@@ -52,7 +51,7 @@
             "ticketsGet",
             ".plugin",
             in_sign="ssiassa{ss}s",
-            out_sign="(asa{ss})",
+            out_sign="s",
             method=lambda service, node, max_items, items_ids, sub_id, extra, profile_key:
                 self._s._get(
                 service,
@@ -95,14 +94,13 @@
         client, service, node, schema, item_id, extra = self._s.prepareBridgeSet(
             service, node, schema, item_id, extra, profile_key
         )
-        d = self.set(
+        d = defer.ensureDeferred(self.set(
             client, service, node, values, schema, item_id, extra, deserialise=True
-        )
+        ))
         d.addCallback(lambda ret: ret or "")
         return d
 
-    @defer.inlineCallbacks
-    def set(self, client, service, node, values, schema=None, item_id=None, extra=None,
+    async def set(self, client, service, node, values, schema=None, item_id=None, extra=None,
             deserialise=False, form_ns=NS_TICKETS):
         """Publish a tickets
 
@@ -124,7 +122,7 @@
             node = NS_TICKETS
 
         if not item_id:
-            comments_service = yield self._m.getCommentsService(client, service)
+            comments_service = await self._m.getCommentsService(client, service)
 
             # we need to use uuid for comments node, because we don't know item id in
             # advance (we don't want to set it ourselves to let the server choose, so we
@@ -140,7 +138,7 @@
                 self._p.OPT_SEND_ITEM_SUBSCRIBE: 1,
                 self._p.OPT_PUBLISH_MODEL: self._p.ACCESS_OPEN,
             }
-            yield self._p.createNode(client, comments_service, comments_node, options)
+            await self._p.createNode(client, comments_service, comments_node, options)
             values["comments_uri"] = uri.buildXMPPUri(
                 "pubsub",
                 subtype="microblog",
@@ -148,7 +146,6 @@
                 node=comments_node,
             )
 
-        item_id = yield self._s.set(
+        return await self._s.set(
             client, service, node, values, schema, item_id, extra, deserialise, form_ns
         )
-        defer.returnValue(item_id)