Mercurial > libervia-backend
comparison sat/plugins/plugin_exp_pubsub_schema.py @ 2807:0b7ce5daee9b
plugin XEP-0277: blog items data are now entirely serialised before going to bridge:
So far, and for historical reasons, blog items data where serialised using a unicode: unicode dict, which was causing trouble for many types of values (timestamps, booleans, lists).
This patch changes it by serialising the whole items before going to bridge, and deserialising it when going back. This way, complex data can be used easily in items.
This impact psEvent and serItemsData* methods which are renamed transItemsData* because there are not always serialising anymore (a new argument "serialise" allows to specify it).
When editing a blog post in jp, metadata are now more easy to manipulate, specially lists like tags.
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 23 Feb 2019 18:59:00 +0100 |
parents | 76ebecdb9b1e |
children | e2cb04b381bb |
comparison
equal
deleted
inserted
replaced
2806:2400cad2dace | 2807:0b7ce5daee9b |
---|---|
249 sub_id or None, | 249 sub_id or None, |
250 extra.rsm_request, | 250 extra.rsm_request, |
251 extra.extra, | 251 extra.extra, |
252 form_ns=form_ns or None, | 252 form_ns=form_ns or None, |
253 ) | 253 ) |
254 d.addCallback(self._p.serItemsData) | 254 d.addCallback(self._p.transItemsData) |
255 return d | 255 return d |
256 | 256 |
257 @defer.inlineCallbacks | 257 @defer.inlineCallbacks |
258 def getDataFormItems(self, client, service, nodeIdentifier, schema=None, | 258 def getDataFormItems(self, client, service, nodeIdentifier, schema=None, |
259 max_items=None, item_ids=None, sub_id=None, rsm_request=None, | 259 max_items=None, item_ids=None, sub_id=None, rsm_request=None, |
492 extra=extra.extra, | 492 extra=extra.extra, |
493 default_node=default_node, | 493 default_node=default_node, |
494 form_ns=form_ns, | 494 form_ns=form_ns, |
495 filters=filters, | 495 filters=filters, |
496 ) | 496 ) |
497 d.addCallback(self._p.serItemsData) | 497 d.addCallback(self._p.transItemsData) |
498 return d | 498 return d |
499 | 499 |
500 def prepareBridgeSet(self, service, node, schema, item_id, extra, profile_key): | 500 def prepareBridgeSet(self, service, node, schema, item_id, extra, profile_key): |
501 """Parse arguments received from bridge *Set methods and return higher level data | 501 """Parse arguments received from bridge *Set methods and return higher level data |
502 | 502 |