Mercurial > prosody-hg
comparison plugins/mod_pubsub/pubsub.lib.lua @ 8219:2e68ae095645
mod_pubsub: Store data in users store, node in 'with' metadata field
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Wed, 26 Apr 2017 12:11:11 +0200 |
| parents | 2c75a5ba58fc |
| children | 8e82aa858ed2 |
comparison
equal
deleted
inserted
replaced
| 8218:2c75a5ba58fc | 8219:2e68ae095645 |
|---|---|
| 329 local function simple_itemstore(archive, config, user, node, expose_publisher) | 329 local function simple_itemstore(archive, config, user, node, expose_publisher) |
| 330 module:log("debug", "Creation of itemstore for node %s with config %s", node, config); | 330 module:log("debug", "Creation of itemstore for node %s with config %s", node, config); |
| 331 local get_set = {}; | 331 local get_set = {}; |
| 332 function get_set:items() | 332 function get_set:items() |
| 333 local store = self.store; | 333 local store = self.store; |
| 334 local data, err = archive:find(node); | 334 local data, err = archive:find(user, { with = node }); |
| 335 if not data then | 335 if not data then |
| 336 module:log("error", "Unable to get items: %s", err); | 336 module:log("error", "Unable to get items: %s", err); |
| 337 return true; | 337 return true; |
| 338 end | 338 end |
| 339 module:log("debug", "Listed items %s from store %s", data, store); | 339 module:log("debug", "Listed items %s from store %s", data, store); |
| 346 return id, item; | 346 return id, item; |
| 347 end; | 347 end; |
| 348 end | 348 end |
| 349 function get_set:get(key) | 349 function get_set:get(key) |
| 350 local store = self.store; | 350 local store = self.store; |
| 351 local data, err = archive:find(node, { | 351 local data, err = archive:find(user, { |
| 352 with = node; | |
| 352 key = key; | 353 key = key; |
| 353 }); | 354 }); |
| 354 if not data then | 355 if not data then |
| 355 module:log("error", "Unable to get item: %s", err); | 356 module:log("error", "Unable to get item: %s", err); |
| 356 return nil, err; | 357 return nil, err; |
| 371 module:log("debug", "Set item %s to %s for %s in store %s", key, value, node, store); | 372 module:log("debug", "Set item %s to %s for %s in store %s", key, value, node, store); |
| 372 local data, err; | 373 local data, err; |
| 373 if value ~= nil then | 374 if value ~= nil then |
| 374 local publisher = value.attr.publisher; | 375 local publisher = value.attr.publisher; |
| 375 local payload = value.tags[1]; | 376 local payload = value.tags[1]; |
| 376 data, err = archive:append(node, key, payload, time_now(), publisher); | 377 data, err = archive:append(user, key, payload, time_now(), node); |
| 377 else | 378 else |
| 378 data, err = archive:delete(node, { | 379 data, err = archive:delete(user, { |
| 379 key = key; | 380 key = key; |
| 381 with = node; | |
| 380 }); | 382 }); |
| 381 end | 383 end |
| 382 if not data then | 384 if not data then |
| 383 module:log("error", "Unable to set item: %s", err); | 385 module:log("error", "Unable to set item: %s", err); |
| 384 return nil, err; | 386 return nil, err; |
