Mercurial > prosody-modules
comparison mod_http_admin_api/mod_http_admin_api.lua @ 4390:17d44ba8fde2
mod_http_admin_api: support for creating groups with MUCs
| author | Jonas Schäfer <jonas@wielicki.name> |
|---|---|
| date | Tue, 26 Jan 2021 15:37:28 +0100 |
| parents | 0d6b69777bc1 |
| children | ae1d1e352504 |
comparison
equal
deleted
inserted
replaced
| 4389:6cfa313cd524 | 4390:17d44ba8fde2 |
|---|---|
| 401 for group_id in mod_groups.groups() do | 401 for group_id in mod_groups.groups() do |
| 402 local group_info = mod_groups.get_info(group_id); | 402 local group_info = mod_groups.get_info(group_id); |
| 403 table.insert(group_list, { | 403 table.insert(group_list, { |
| 404 id = group_id; | 404 id = group_id; |
| 405 name = group_info.name; | 405 name = group_info.name; |
| 406 muc_jid = group_info.muc_jid; | |
| 406 members = mod_groups.get_members(group_id); | 407 members = mod_groups.get_members(group_id); |
| 407 }); | 408 }); |
| 408 end | 409 end |
| 409 | 410 |
| 410 event.response.headers["Content-Type"] = json_content_type; | 411 event.response.headers["Content-Type"] = json_content_type; |
| 420 event.response.headers["Content-Type"] = json_content_type; | 421 event.response.headers["Content-Type"] = json_content_type; |
| 421 | 422 |
| 422 return json.encode({ | 423 return json.encode({ |
| 423 id = group_id; | 424 id = group_id; |
| 424 name = group.name; | 425 name = group.name; |
| 426 muc_jid = group.muc_jid; | |
| 425 members = mod_groups.get_members(group_id); | 427 members = mod_groups.get_members(group_id); |
| 426 }); | 428 }); |
| 427 end | 429 end |
| 428 | 430 |
| 429 function create_group(event) | 431 function create_group(event) |
| 440 if not group.name then | 442 if not group.name then |
| 441 module:log("warn", "Group missing name property"); | 443 module:log("warn", "Group missing name property"); |
| 442 return 400; | 444 return 400; |
| 443 end | 445 end |
| 444 | 446 |
| 445 local group_id = mod_groups.create({ | 447 local create_muc = group.create_muc and true or false; |
| 446 name = group.name; | 448 |
| 447 }); | 449 local group_id = mod_groups.create( |
| 450 { | |
| 451 name = group.name; | |
| 452 }, | |
| 453 create_muc | |
| 454 ); | |
| 448 if not group_id then | 455 if not group_id then |
| 449 return 500; | 456 return 500; |
| 450 end | 457 end |
| 451 | 458 |
| 452 event.response.headers["Content-Type"] = json_content_type; | 459 event.response.headers["Content-Type"] = json_content_type; |
| 460 | |
| 461 local info = mod_groups.get_info(group_id); | |
| 453 return json.encode({ | 462 return json.encode({ |
| 454 id = group_id; | 463 id = group_id; |
| 455 name = group.name; | 464 name = info.name; |
| 465 muc_jid = info.muc_jid or nil; | |
| 456 members = {}; | 466 members = {}; |
| 457 }); | 467 }); |
| 458 end | 468 end |
| 459 | 469 |
| 460 function update_group(event, group) --luacheck: ignore 212/event | 470 function update_group(event, group) --luacheck: ignore 212/event |
