aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mod_storage_memory.lua
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2020-06-12 16:55:35 +0100
committerMatthew Wild <mwild1@gmail.com>2020-06-12 16:55:35 +0100
commit6a126c350f01160c7e4b03109b5e3a3f67d5d5bb (patch)
treea9f8657bc3fd1a166f49c958671e5b2a86f0f72a /plugins/mod_storage_memory.lua
parentc96212e146b390739d411e5f7ba87429468a8462 (diff)
downloadprosody-6a126c350f01160c7e4b03109b5e3a3f67d5d5bb.tar.gz
prosody-6a126c350f01160c7e4b03109b5e3a3f67d5d5bb.zip
mod_storage_internal, mod_storage_memory: Add support for query.before
Previously returned all results.
Diffstat (limited to 'plugins/mod_storage_memory.lua')
-rw-r--r--plugins/mod_storage_memory.lua6
1 files changed, 4 insertions, 2 deletions
diff --git a/plugins/mod_storage_memory.lua b/plugins/mod_storage_memory.lua
index 67598416..d71dc0f0 100644
--- a/plugins/mod_storage_memory.lua
+++ b/plugins/mod_storage_memory.lua
@@ -101,7 +101,7 @@ function archive_store:find(username, query)
return function () end;
end
local count = nil;
- local i = 0;
+ local i, last_key = 0;
if query then
items = array():append(items);
if query.key then
@@ -142,6 +142,8 @@ function archive_store:find(username, query)
return nil, "item-not-found";
end
end
+ elseif query.before then
+ last_key = query.before;
elseif query.after then
local found = false;
for j = 1, #items do
@@ -162,7 +164,7 @@ function archive_store:find(username, query)
return function ()
i = i + 1;
local item = items[i];
- if not item then return; end
+ if not item or (last_key and item.key == last_key) then return; end
return item.key, item.value(), item.when, item.with;
end, count;
end