author | Matthew Wild <mwild1@gmail.com> |
Tue, 16 Apr 2024 13:03:39 +0100 | |
changeset 5890 | 2c85397d7241 |
parent 4509 | e11abf578df5 |
permissions | -rw-r--r-- |
4451
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 |
|
4452
5879ca1f7853
mod_muc_http_defaults: Remove fancy to be 0.11-compatible
Kim Alvefur <zash@zash.se>
parents:
4451
diff
changeset
|
12 |
Should work with Prosody 0.11. |
4451
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 |
|
4459
89e54247ade6
mod_muc_http_defaults: Add template filters to let you extract room JID parts
Kim Alvefur <zash@zash.se>
parents:
4457
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:
4457
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:
4457
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:
4457
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:
4457
diff
changeset
|
28 |
|
4451
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 |
|
4457
0508822361eb
mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents:
4456
diff
changeset
|
44 |
## Room Configuration |
0508822361eb
mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents:
4456
diff
changeset
|
45 |
|
0508822361eb
mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents:
4456
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:
4456
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:
4456
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:
4456
diff
changeset
|
49 |
Prosodys config file. |
0508822361eb
mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents:
4456
diff
changeset
|
50 |
|
0508822361eb
mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents:
4456
diff
changeset
|
51 |
| Property | Type | Description | |
0508822361eb
mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents:
4456
diff
changeset
|
52 |
|------------------------|---------|---------------------------------------------------------------------------| |
0508822361eb
mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents:
4456
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:
4456
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:
4456
diff
changeset
|
55 |
| `language` | string | Language code | |
0508822361eb
mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents:
4456
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:
4456
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:
4456
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:
4456
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:
4456
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:
4456
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:
4456
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:
4456
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:
4456
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:
4456
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:
4456
diff
changeset
|
66 |
|
0508822361eb
mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents:
4456
diff
changeset
|
67 |
## Affiliations |
0508822361eb
mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents:
4456
diff
changeset
|
68 |
|
0508822361eb
mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents:
4456
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:
4456
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:
4456
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:
4456
diff
changeset
|
72 |
nickname (e.g. |
0508822361eb
mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents:
4456
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:
4456
diff
changeset
|
74 |
|
4451
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: |
4509
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
87 |
name: |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
88 |
type: string |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
89 |
description: |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
90 |
type: string |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
91 |
language: |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
92 |
type: string |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
93 |
persistent: |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
94 |
type: boolean |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
95 |
public: |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
96 |
type: boolean |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
97 |
members_only: |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
98 |
type: boolean |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
99 |
allow_member_invites: |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
100 |
type: boolean |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
101 |
public_jids: |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
102 |
type: boolean |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
103 |
subject: |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
104 |
type: string |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
105 |
changesubject: |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
106 |
type: boolean |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
107 |
historylength: |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
108 |
type: integer |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
109 |
moderated: |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
110 |
type: boolean |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
111 |
archiving: |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
112 |
type: boolean |
4451
07aa101a1ae7
mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
113 |
affiliations: |
4456
6086fcf20da8
mod_muc_http_defaults: Minor schema tweak
Kim Alvefur <zash@zash.se>
parents:
4452
diff
changeset
|
114 |
oneOf: |
4451
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: |
4479
017ad6ed96ae
mod_muc_http_defaults: Schema corrections
Kim Alvefur <zash@zash.se>
parents:
4459
diff
changeset
|
126 |
$ref: '#/definitions/affiliation' |
4509
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
127 |
nick: |
e11abf578df5
mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents:
4479
diff
changeset
|
128 |
type: string |
4451
07aa101a1ae7
mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
129 |
- type: object |
4479
017ad6ed96ae
mod_muc_http_defaults: Schema corrections
Kim Alvefur <zash@zash.se>
parents:
4459
diff
changeset
|
130 |
additionalProperties: |
017ad6ed96ae
mod_muc_http_defaults: Schema corrections
Kim Alvefur <zash@zash.se>
parents:
4459
diff
changeset
|
131 |
$ref: '#/definitions/affiliation' |
4451
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 |
{} |