Mercurial > prosody-hg
comparison util/pubsub.lua @ 8813:2c55fccb0c0c
util.pubsub: Pass node and service objects to broadcaster to allow eg config access
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Mon, 21 May 2018 00:35:00 +0200 |
| parents | 9f8a746f99c1 |
| children | 0f9d5cfa84f9 |
comparison
equal
deleted
inserted
replaced
| 8812:3d7fceaff230 | 8813:2c55fccb0c0c |
|---|---|
| 287 if self.data[node] and self.data[node].clear then | 287 if self.data[node] and self.data[node].clear then |
| 288 self.data[node]:clear(); | 288 self.data[node]:clear(); |
| 289 end | 289 end |
| 290 self.data[node] = nil; | 290 self.data[node] = nil; |
| 291 self.events.fire_event("node-deleted", { node = node, actor = actor }); | 291 self.events.fire_event("node-deleted", { node = node, actor = actor }); |
| 292 self.config.broadcaster("delete", node, node_obj.subscribers); | 292 self.config.broadcaster("delete", node, node_obj.subscribers, nil, actor, node_obj, self); |
| 293 return true; | 293 return true; |
| 294 end | 294 end |
| 295 | 295 |
| 296 function service:publish(node, actor, id, item) | 296 function service:publish(node, actor, id, item) |
| 297 -- Access checking | 297 -- Access checking |
| 318 if not ok then | 318 if not ok then |
| 319 return nil, "internal-server-error"; | 319 return nil, "internal-server-error"; |
| 320 end | 320 end |
| 321 if type(ok) == "string" then id = ok; end | 321 if type(ok) == "string" then id = ok; end |
| 322 self.events.fire_event("item-published", { node = node, actor = actor, id = id, item = item }); | 322 self.events.fire_event("item-published", { node = node, actor = actor, id = id, item = item }); |
| 323 self.config.broadcaster("items", node, node_obj.subscribers, item, actor); | 323 self.config.broadcaster("items", node, node_obj.subscribers, item, actor, node_obj, self); |
| 324 return true; | 324 return true; |
| 325 end | 325 end |
| 326 | 326 |
| 327 function service:retract(node, actor, id, retract) | 327 function service:retract(node, actor, id, retract) |
| 328 -- Access checking | 328 -- Access checking |
| 338 if not ok then | 338 if not ok then |
| 339 return nil, "internal-server-error"; | 339 return nil, "internal-server-error"; |
| 340 end | 340 end |
| 341 self.events.fire_event("item-retracted", { node = node, actor = actor, id = id }); | 341 self.events.fire_event("item-retracted", { node = node, actor = actor, id = id }); |
| 342 if retract then | 342 if retract then |
| 343 self.config.broadcaster("items", node, node_obj.subscribers, retract); | 343 self.config.broadcaster("items", node, node_obj.subscribers, retract, actor, node_obj, self); |
| 344 end | 344 end |
| 345 return true | 345 return true |
| 346 end | 346 end |
| 347 | 347 |
| 348 function service:purge(node, actor, notify) | 348 function service:purge(node, actor, notify) |
| 360 else | 360 else |
| 361 self.data[node] = self.config.itemstore(self.nodes[node].config, node); | 361 self.data[node] = self.config.itemstore(self.nodes[node].config, node); |
| 362 end | 362 end |
| 363 self.events.fire_event("node-purged", { node = node, actor = actor }); | 363 self.events.fire_event("node-purged", { node = node, actor = actor }); |
| 364 if notify then | 364 if notify then |
| 365 self.config.broadcaster("purge", node, node_obj.subscribers); | 365 self.config.broadcaster("purge", node, node_obj.subscribers, nil, actor, node_obj, self); |
| 366 end | 366 end |
| 367 return true | 367 return true |
| 368 end | 368 end |
| 369 | 369 |
| 370 function service:get_items(node, actor, id) | 370 function service:get_items(node, actor, id) |
