Software /
code /
prosody-modules
Comparison
mod_http_admin_api/mod_http_admin_api.lua @ 4351:c0b1b2a61e3c
mod_http_admin_api: Add support for creating reusable/group/custom-ttl invites
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sun, 17 Jan 2021 17:50:42 +0000 |
parent | 4350:270025e76bf8 |
child | 4352:f6da234b21b8 |
comparison
equal
deleted
inserted
replaced
4350:270025e76bf8 | 4351:c0b1b2a61e3c |
---|---|
93 event.response.headers["Content-Type"] = json_content_type; | 93 event.response.headers["Content-Type"] = json_content_type; |
94 return json.encode(token_info_to_invite_info(invite)); | 94 return json.encode(token_info_to_invite_info(invite)); |
95 end | 95 end |
96 | 96 |
97 function create_invite(event) | 97 function create_invite(event) |
98 local invite = invites.create_account(nil, { source = "admin_api/"..event.session.username }); | 98 local invite_options; |
99 | |
100 local request = event.request; | |
101 if request.body and #request.body > 0 then | |
102 if request.headers.content_type ~= json_content_type then | |
103 module:log("warn", "Invalid content type"); | |
104 return 400; | |
105 end | |
106 invite_options = json.decode(event.request.body); | |
107 if not invite_options then | |
108 module:log("warn", "Invalid JSON"); | |
109 return 400; | |
110 end | |
111 end | |
112 | |
113 local invite; | |
114 if invite_options and invite_options.reusable then | |
115 invite = invites.create_group(invite_options.group, invite_options.ttl, { | |
116 source = "admin_api/"..event.session.username; | |
117 }); | |
118 else | |
119 invite = invites.create_account(nil, { | |
120 source = "admin_api/"..event.session.username; | |
121 groups = { invite_options.group }; | |
122 }); | |
123 end | |
99 if not invite then | 124 if not invite then |
100 return 500; | 125 return 500; |
101 end | 126 end |
102 | 127 |
103 event.response.headers["Content-Type"] = json_content_type; | 128 event.response.headers["Content-Type"] = json_content_type; |