Annotate

mod_muc_http_defaults/README.markdown @ 4941:e7b9bc629ecc

mod_rest: Add special handling to catch MAM results from remote hosts Makes MAM queries to remote hosts works. As the comment says, MAM results from users' local archives or local MUCs are returned via origin.send() which is provided in the event and thus already worked. Results from remote hosts go via normal stanza routing and events, which need this extra handling to catch. This pattern of iq-set, message+, iq-result is generally limited to MAM. Closest similar thing might be MUC join, but to really handle that you would need the webhook callback mechanism.
author Kim Alvefur <zash@zash.se>
date Mon, 16 May 2022 19:47:09 +0200
parent 4505:e11abf578df5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4447
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 ---
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 summary: Seed MUC configuration from JSON REST API
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 ---
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 # Introduction
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 This module fetches configuration for MUC rooms from an API when rooms
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 are created.
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 # Requirements
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11
4448
5879ca1f7853 mod_muc_http_defaults: Remove fancy to be 0.11-compatible
Kim Alvefur <zash@zash.se>
parents: 4447
diff changeset
12 Should work with Prosody 0.11.
4447
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 # Configuration
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 `muc_create_api_url`
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 : URL template for the API endpoint to get settings. `{room.jid}` is
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18 replaced by the address of the room in question.
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 `muc_create_api_auth`
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21 : The value of the Authorization header to authenticate against the
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 API. E.g. `"Bearer /rXU4tkQTYQMgdHfMLH6"`{.lua}
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23
4455
89e54247ade6 mod_muc_http_defaults: Add template filters to let you extract room JID parts
Kim Alvefur <zash@zash.se>
parents: 4453
diff changeset
24 In the URL template variable, the room JID is available as `{room.jid}`,
89e54247ade6 mod_muc_http_defaults: Add template filters to let you extract room JID parts
Kim Alvefur <zash@zash.se>
parents: 4453
diff changeset
25 which would be turned into `room@muc.host`. To only get the room
89e54247ade6 mod_muc_http_defaults: Add template filters to let you extract room JID parts
Kim Alvefur <zash@zash.se>
parents: 4453
diff changeset
26 localpart, `{room.jid|jid_node}` can be used, and `{room.jid|jid_host}`
89e54247ade6 mod_muc_http_defaults: Add template filters to let you extract room JID parts
Kim Alvefur <zash@zash.se>
parents: 4453
diff changeset
27 splits out the `muc.host` part.
89e54247ade6 mod_muc_http_defaults: Add template filters to let you extract room JID parts
Kim Alvefur <zash@zash.se>
parents: 4453
diff changeset
28
4447
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
29 ## Example
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
30
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
31 ``` {.lua}
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
32 Component "channels.example.net" "muc"
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
33 modules_enabled = { "muc_http_defaults" }
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
34 muc_create_api_url = "https://api.example.net/muc/config?jid={room.jid}"
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
35 ```
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
36
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
37 # API
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
38
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
39 A RESTful JSON API is used. Any error causes the room to be destroyed.
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
40
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
41 The returned JSON consists of two main parts, the room configuration and
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
42 the affiliations (member list).
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
43
4453
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
44 ## Room Configuration
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
45
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
46 The top level `config` field contains a map of properties corresponding
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
47 to the fields in the room configuration dialog, named similarly to the
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
48 [room configuration default][doc:modules:mod_muc#room-configuration-defaults] in
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
49 Prosodys config file.
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
50
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
51 | Property | Type | Description |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
52 |------------------------|---------|---------------------------------------------------------------------------|
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
53 | `name` | string | Name of the chat |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
54 | `description` | string | Longer description of the chat |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
55 | `language` | string | Language code |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
56 | `persistent` | boolean | Whether the room should keep existing if it becomes empty |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
57 | `public` | boolean | `true` to include in public listing |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
58 | `members_only` | boolean | Membership or open |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
59 | `allow_member_invites` | boolean | If members can invite others into members-only rooms |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
60 | `public_jids` | boolean | If everyone or only moderators should see real identities |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
61 | `subject` | string | In-room subject or topic message |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
62 | `changesubject` | boolean | If `true` then everyone can change the subject, otherwise only moderators |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
63 | `historylength` | integer | Number of messages to keep in memory (legacy method) |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
64 | `moderated` | boolean | New participants start without voice privileges if set to `true` |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
65 | `archiving` | boolean | Whether [archiving][doc:modules:mod_muc_mam] is enabled |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
66
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
67 ## Affiliations
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
68
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
69 The list of members go in `affiliations` which is either an object
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
70 mapping addresses to affiliations (e.g. `{"user@host":"admin"}`{.json}),
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
71 or it can be an array of address, affiliation and optionally a reserved
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
72 nickname (e.g.
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
73 `[{"jid":"user@host","affiliation":"member","nick":"joe"}]`{.json}).
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
74
4447
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
75 ## Schema
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
76
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
77 Here's a JSON Schema in YAML format describing the expected JSON
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
78 response data:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
79
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
80 ``` {.yaml}
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
81 ---
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
82 type: object
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
83 properties:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
84 config:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
85 type: object
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
86 properties:
4505
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
87 name:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
88 type: string
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
89 description:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
90 type: string
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
91 language:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
92 type: string
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
93 persistent:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
94 type: boolean
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
95 public:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
96 type: boolean
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
97 members_only:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
98 type: boolean
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
99 allow_member_invites:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
100 type: boolean
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
101 public_jids:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
102 type: boolean
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
103 subject:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
104 type: string
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
105 changesubject:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
106 type: boolean
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
107 historylength:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
108 type: integer
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
109 moderated:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
110 type: boolean
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
111 archiving:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
112 type: boolean
4447
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
113 affiliations:
4452
6086fcf20da8 mod_muc_http_defaults: Minor schema tweak
Kim Alvefur <zash@zash.se>
parents: 4448
diff changeset
114 oneOf:
4447
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
115 - type: array
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
116 items:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
117 type: object
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
118 required:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
119 - jid
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
120 - affiliation
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
121 properties:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
122 jid:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
123 type: string
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
124 pattern: ^[^@/]+@[^/]+$
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
125 affiliation:
4475
017ad6ed96ae mod_muc_http_defaults: Schema corrections
Kim Alvefur <zash@zash.se>
parents: 4455
diff changeset
126 $ref: '#/definitions/affiliation'
4505
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
127 nick:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4475
diff changeset
128 type: string
4447
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
129 - type: object
4475
017ad6ed96ae mod_muc_http_defaults: Schema corrections
Kim Alvefur <zash@zash.se>
parents: 4455
diff changeset
130 additionalProperties:
017ad6ed96ae mod_muc_http_defaults: Schema corrections
Kim Alvefur <zash@zash.se>
parents: 4455
diff changeset
131 $ref: '#/definitions/affiliation'
4447
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
132 definitions:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
133 affiliation:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
134 type: string
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
135 enum:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
136 - owner
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
137 - admin
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
138 - member
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
139 - none
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
140 - outcast
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
141 ...
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
142 ```
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
143
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
144 ## Example
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
145
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
146 A basic example with some config settings and a few affiliations:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
147
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
148 ``` {.json}
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
149 GET /muc/config?jid=place@channels.example.net
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
150 Accept: application/json
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
151
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
152 HTTP/1.1 200 OK
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
153 Content-Type: application/json
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
154
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
155 {
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
156 "affiliations" : [
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
157 {
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
158 "affiliation" : "owner",
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
159 "jid" : "bosmang@example.net",
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
160 "nick" : "bosmang"
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
161 },
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
162 {
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
163 "affiliation" : "admin",
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
164 "jid" : "xo@example.net",
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
165 "nick" : "xo"
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
166 },
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
167 {
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
168 "affiliation" : "member",
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
169 "jid" : "john@example.net"
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
170 }
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
171 ],
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
172 "config" : {
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
173 "archiving" : true,
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
174 "description" : "This is the place",
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
175 "members_only" : true,
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
176 "moderated" : false,
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
177 "name" : "The Place",
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
178 "persistent" : true,
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
179 "public" : false,
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
180 "subject" : "Discussions regarding The Place"
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
181 }
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
182 }
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
183 ```
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
184
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
185 To allow the creation without making any changes, letting whoever
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
186 created it be the owner, just return an empty JSON object:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
187
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
188 HTTP/1.1 200 OK
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
189 Content-Type: application/json
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
190
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
191 {}