diff --git a/bigbluebutton/api/attendee.py b/bigbluebutton/api/attendee.py index 6b6cb2e4f26f51c38220352778dfec467bb05de2..aaaa1f40ffb9c55b68a09c17cf8f30219d61758f 100644 --- a/bigbluebutton/api/attendee.py +++ b/bigbluebutton/api/attendee.py @@ -6,7 +6,7 @@ from dataclasses import dataclass from enum import Enum from typing import Optional -from .util import camel_to_snake, to_field_type +from .util import camel_to_snake, snake_to_camel, to_field_type logger = logging.getLogger(__name__) @@ -110,7 +110,7 @@ class Attendee: continue if name == "meeting": - res["meetingID"] = meeting.meeting_id + res["meetingID"] = self.meeting.meeting_id elif value is not None: if name in kwargs: camel_name = kwargs[name] diff --git a/bigbluebutton/api/meeting.py b/bigbluebutton/api/meeting.py index 4d478ffdaf7517717747953242193cca807ce2f9..343de704eac80657794ac90048e64ea42496aa09 100644 --- a/bigbluebutton/api/meeting.py +++ b/bigbluebutton/api/meeting.py @@ -102,7 +102,13 @@ class Meeting: if args and name not in args and name not in kwargs: continue - if name not in ("api", "meta") and value is not None: + if name == "api": + continue + elif name == "meta": + res["meta"] = self.meta + elif name == "attendees": + res["attendees"] = {"attendee": [{full_name: attendee.to_dict() for full_name, attendee in self.attendees.items()}]} + elif value is not None: if name in kwargs: camel_name = kwargs[name] else: @@ -115,17 +121,16 @@ class Meeting: res[camel_name] = str_value - res["meta"] = self.meta - return res def get_url_args(self, *args, **kwargs) -> dict: url_args = self.to_dict(*args, **kwargs) - # Unpack meta dictionary as values are passed one by one in URL - for name, value in url_args["meta"].items(): - url_args["meta_" + name] = value - del url_args["meta"] + if "meta" in url_args: + # Unpack meta dictionary as values are passed one by one in URL + for name, value in url_args["meta"].items(): + url_args["meta_" + name] = value + del url_args["meta"] return url_args