Mercurial > libervia-pubsub
diff sat_pubsub/backend.py @ 314:1e546442b81a
backend (getItems): minor refactoring of extenstion callback loop, as it is used only for RSM and it is not efficient. Need to be moved in an other module
author | Goffi <goffi@goffi.org> |
---|---|
date | Sun, 03 Jan 2016 18:33:22 +0100 |
parents | 5d7c3787672e |
children | 720d73e30bf7 |
line wrap: on
line diff
--- a/sat_pubsub/backend.py Sun Jan 03 18:33:20 2016 +0100 +++ b/sat_pubsub/backend.py Sun Jan 03 18:33:22 2016 +0100 @@ -643,13 +643,15 @@ d.addCallback(self._tuple2ItemData) d.addCallback(append_item_config) - for extension in ext_data: - if ext_data[extension] is not None: - if hasattr(self, '_items_%s' % extension): - method = getattr(self, '_items_%s' % extension) - d.addCallback(method, node, authorized_groups, - unrestricted, maxItems, itemIdentifiers, - ext_data[extension]) + try: + rsm_data = ext_data['rsm'] + except KeyError: + pass + else: + if rsm_data is not None: + d.addCallback(self._items_rsm, node, authorized_groups, + unrestricted, maxItems, itemIdentifiers, + rsm_data) return d if not ILeafNode.providedBy(node): @@ -680,6 +682,7 @@ def _items_rsm(self, elts, node, authorized_groups, unrestricted, maxItems, itemIdentifiers, request): + # FIXME: move this to a separate module ? response = rsm.RSMResponse() d_count = node.countItems(authorized_groups, unrestricted)