diff options
author | Kim Alvefur <zash@zash.se> | 2013-09-28 22:04:04 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2013-09-28 22:04:04 +0200 |
commit | ec02caa58330a07130747dede9121f8229332996 (patch) | |
tree | 27357d4de2658656f54dcdd5b941a6493b76b911 /plugins | |
parent | dad0501c65620aadc5b272c671bb6bb02021c282 (diff) | |
download | prosody-ec02caa58330a07130747dede9121f8229332996.tar.gz prosody-ec02caa58330a07130747dede9121f8229332996.zip |
mod_storage_sql2: Add method for deleting items from archives with same syntax as :find()
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/mod_storage_sql2.lua | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/plugins/mod_storage_sql2.lua b/plugins/mod_storage_sql2.lua index 1ce8c204..174bad78 100644 --- a/plugins/mod_storage_sql2.lua +++ b/plugins/mod_storage_sql2.lua @@ -340,6 +340,21 @@ function archive_store:find(username, query) end, total; end +function archive_store:delete(username, query) + query = query or {}; + local user,store = username,self.store; + return engine:transaction(function() + local sql_query = "DELETE FROM `prosodyarchive` WHERE %s;"; + local args = { host, user or "", store, }; + local where = { "`host` = ?", "`user` = ?", "`store` = ?", }; + archive_where(query, args, where); + archive_where_id_range(query, args, where); + sql_query = sql_query:format(t_concat(where, " AND ")); + module:log("debug", sql_query); + return engine:delete(sql_query, unpack(args)); + end); +end + local stores = { keyval = keyval_store; archive = archive_store; |