Software / code / prosody
Comparison
plugins/mod_pubsub/pubsub.lib.lua @ 8300:7759eb130938
mod_pep_plus, mod_pubsub: Store node content in separate archive stores
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sun, 08 Oct 2017 01:56:44 +0200 |
| parent | 8298:dd9fa511494a |
| child | 8301:e2ab440a3437 |
comparison
equal
deleted
inserted
replaced
| 8299:756a2a00e7e7 | 8300:7759eb130938 |
|---|---|
| 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(user, { with = node }); | 334 local data, err = archive:find(user); |
| 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); |
| 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(user, { | 351 local data, err = archive:find(user, { |
| 352 with = node; | |
| 353 key = key; | 352 key = key; |
| 354 }); | 353 }); |
| 355 if not data then | 354 if not data then |
| 356 module:log("error", "Unable to get item: %s", err); | 355 module:log("error", "Unable to get item: %s", err); |
| 357 return nil, err; | 356 return nil, err; |
| 368 module:log("debug", "Set item %s to %s for %s in store %s", key, value, node, store); | 367 module:log("debug", "Set item %s to %s for %s in store %s", key, value, node, store); |
| 369 local data, err; | 368 local data, err; |
| 370 if value ~= nil then | 369 if value ~= nil then |
| 371 local publisher = value.attr.publisher; | 370 local publisher = value.attr.publisher; |
| 372 local payload = value.tags[1]; | 371 local payload = value.tags[1]; |
| 373 data, err = archive:append(user, key, payload, time_now(), node); | 372 data, err = archive:append(user, key, payload, time_now(), publisher); |
| 374 else | 373 else |
| 375 data, err = archive:delete(user, { | 374 data, err = archive:delete(user, { key = key; }); |
| 376 key = key; | |
| 377 with = node; | |
| 378 }); | |
| 379 end | 375 end |
| 380 if not data then | 376 if not data then |
| 381 module:log("error", "Unable to set item: %s", err); | 377 module:log("error", "Unable to set item: %s", err); |
| 382 return nil, err; | 378 return nil, err; |
| 383 end | 379 end |
| 384 return data; | 380 return data; |
| 385 end | 381 end |
| 386 function get_set:clear() | 382 function get_set:clear() |
| 387 return archive:delete(user, { with = node }); | 383 return archive:delete(user); |
| 388 end | 384 end |
| 389 return setmetatable(get_set, archive); | 385 return setmetatable(get_set, archive); |
| 390 end | 386 end |
| 391 _M.simple_itemstore = simple_itemstore; | 387 _M.simple_itemstore = simple_itemstore; |
| 392 | 388 |