Mercurial > prosody-modules
comparison mod_storage_s3/mod_storage_s3.lua @ 5697:4a0279c5c7ed
mod_storage_s3: Implement archive store deletion
Not the most efficient way but should work.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 11 Nov 2023 22:47:14 +0100 |
parents | 66986f5271c3 |
children | 991fb904fa49 |
comparison
equal
deleted
inserted
replaced
5696:66986f5271c3 | 5697:4a0279c5c7ed |
---|---|
6 local httputil = require "prosody.util.http"; | 6 local httputil = require "prosody.util.http"; |
7 local uuid = require "prosody.util.uuid"; | 7 local uuid = require "prosody.util.uuid"; |
8 local it = require "prosody.util.iterators"; | 8 local it = require "prosody.util.iterators"; |
9 local jid = require "prosody.util.jid"; | 9 local jid = require "prosody.util.jid"; |
10 local json = require "prosody.util.json"; | 10 local json = require "prosody.util.json"; |
11 local promise = require "prosody.util.promise"; | |
11 local st = require "prosody.util.stanza"; | 12 local st = require "prosody.util.stanza"; |
12 local xml = require "prosody.util.xml"; | 13 local xml = require "prosody.util.xml"; |
13 local url = require "socket.url"; | 14 local url = require "socket.url"; |
14 | 15 |
15 local new_uuid = uuid.v7 or uuid.generate; | 16 local new_uuid = uuid.v7 or uuid.generate; |
307 | 308 |
308 function archive:users() | 309 function archive:users() |
309 return it.unique(keyval.users(self)); | 310 return it.unique(keyval.users(self)); |
310 end | 311 end |
311 | 312 |
312 --[[ TODO | 313 local function count(t) local n = 0; for _ in pairs(t) do n = n + 1; end return n; end |
314 | |
313 function archive:delete(username, query) | 315 function archive:delete(username, query) |
314 return nil, "not-implemented"; | 316 local deletions = {}; |
315 end | 317 for key, _, when, with in self:find(username, query) do |
316 --]] | 318 deletions[key] = new_request(self, "DELETE", self:_path(username or "@", dt.date(when), nil, with, key)); |
319 end | |
320 return async.wait_for(promise.all(deletions):next(count)); | |
321 end | |
317 | 322 |
318 module:provides("storage", driver); | 323 module:provides("storage", driver); |