Annotate

doc/storage.tld @ 10684:de607875d4bd

MUC: Pass previous role to :publicise_occupant_status() whenever possible Currently there is what amounts to a hack in presence_broadcast.lib.lua to make it always broadcast presence with roles of "none". This is to ensure that if you previously saw available presence for someone, you will also see the unavailable presence (which always has role="none"). The correct approach is to take into account what the previous role was ( i.e. answer the question: "Was the available presence for this occupant a role for which presence broadcast is enabled?). The logic is already in place to do this correctly, but most call sites do not provide the previous role (prev_role argument) of the occupant, which causes it to not be used. In its place the hack to always broadcast presence of role="none" has allowed things to continue to work. The intention is that a subsequent commit will remove the unconditional broadcast of role="none".
author Matthew Wild <mwild1@gmail.com>
date Thu, 12 Mar 2020 14:10:12 +0000
parent 9903:2c5546cc5c70
child 10838:f26f2ec33f1e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7744
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 -- Storage Interface API Description
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 --
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 -- This is written as a TypedLua description
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 -- Key-Value stores (the default)
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 interface keyval_store
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 get : ( self, string? ) -> (any) | (nil, string)
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 set : ( self, string?, any ) -> (boolean) | (nil, string)
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 end
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 -- Map stores (key-key-value stores)
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 interface map_store
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 get : ( self, string?, any ) -> (any) | (nil, string)
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 set : ( self, string?, any, any ) -> (boolean) | (nil, string)
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 set_keys : ( self, string?, { any : any }) -> (boolean) | (nil, string)
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18 remove : {}
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 end
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21 -- Archive stores
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23 typealias archive_query = {
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24 "start" : number?, -- timestamp
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25 "end" : number?, -- timestamp
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26 "with" : string?,
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
27 "after" : string?, -- archive id
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
28 "before" : string?, -- archive id
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
29 "total" : boolean?,
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
30 }
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
31
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
32 interface archive_store
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
33 -- Optional set of capabilities
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
34 caps : {
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
35 -- Optional total count of matching items returned as second return value from :find()
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
36 "total" : boolean?,
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
37 }?
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
38
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
39 -- Add to the archive
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
40 append : ( self, string?, string?, any, number?, string? ) -> (string) | (nil, string)
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
41
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
42 -- Iterate over archive
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
43 find : ( self, string?, archive_query? ) -> ( () -> ( string, any, number?, string? ), integer? )
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
44
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
45 -- Removal of items. API like find. Optional?
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
46 delete : ( self, string?, archive_query? ) -> (boolean) | (number) | (nil, string)
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
47
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
48 -- Array of dates which do have messages (Optional?)
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
49 dates : ( self, string? ) -> ({ string }) | (nil, string)
9903
2c5546cc5c70 mod_storage_internal: Implement a summary API returning message counts per contact
Kim Alvefur <zash@zash.se>
parents: 7744
diff changeset
50
2c5546cc5c70 mod_storage_internal: Implement a summary API returning message counts per contact
Kim Alvefur <zash@zash.se>
parents: 7744
diff changeset
51 -- Map of counts per "with" field
2c5546cc5c70 mod_storage_internal: Implement a summary API returning message counts per contact
Kim Alvefur <zash@zash.se>
parents: 7744
diff changeset
52 summary : ( self, string?, archive_query? ) -> ( { string : integer } ) | (nil, string)
7744
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
53 end
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
54
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
55 -- This represents moduleapi
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
56 interface module
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
57 -- If the first string is omitted then the name of the module is used
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
58 -- The second string is one of "keyval" (default), "map" or "archive"
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
59 open_store : (self, string?, string?) -> (keyval_store) | (map_store) | (archive_store) | (nil, string)
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
60
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
61 -- Other module methods omitted
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
62 end
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
63
4d9186d990a5 doc: Add a description of the Storage API in TypedLua format
Kim Alvefur <zash@zash.se>
parents:
diff changeset
64 module : module