Mercurial > libervia-pubsub
comparison idavoll/generic_backend.py @ 118:7d83fe9bdb65
Change storage.INode.add_subscription() to return a Failure when a subscription
already exists.
Added storage.INode.get_subscription() for retrieving the subscription state.
author | Ralph Meijer <ralphm@ik.nu> |
---|---|
date | Tue, 12 Apr 2005 12:15:44 +0000 |
parents | d252d793f0ed |
children | 43102fecb14b |
comparison
equal
deleted
inserted
replaced
117:bc872c33e88c | 118:7d83fe9bdb65 |
---|---|
151 | 151 |
152 if affiliation == 'outcast': | 152 if affiliation == 'outcast': |
153 raise backend.NotAuthorized | 153 raise backend.NotAuthorized |
154 | 154 |
155 d = node.add_subscription(subscriber, 'subscribed') | 155 d = node.add_subscription(subscriber, 'subscribed') |
156 d.addCallback(self._return_subscription, affiliation) | 156 d.addCallback(lambda _: 'subscribed') |
157 return d | 157 d.addErrback(self._get_subscription, node) |
158 | 158 d.addCallback(self._return_subscription, affiliation, node.id) |
159 def _return_subscription(self, result, affiliation): | 159 return d |
160 result['affiliation'] = affiliation | 160 |
161 return result | 161 def _get_subscription(self, failure, node): |
162 failure.Trap(storage.SubscriptionExists) | |
163 return node.get_subscription(subscriber) | |
164 | |
165 def _return_subscription(self, result, affiliation, node_id): | |
166 return {'affiliation': affiliation, | |
167 'node': node_id, | |
168 'state': result} | |
162 | 169 |
163 def unsubscribe(self, node_id, subscriber, requestor): | 170 def unsubscribe(self, node_id, subscriber, requestor): |
164 if subscriber.userhostJID() != requestor: | 171 if subscriber.userhostJID() != requestor: |
165 raise backend.NotAuthorized | 172 raise backend.NotAuthorized |
166 | 173 |