Software /
code /
prosody-modules
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 |
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 {} |