From a31d4567eeb772f3bc31824077824a2d2446728e Mon Sep 17 00:00:00 2001 From: Dominik George <dominik.george@teckids.org> Date: Mon, 25 May 2020 01:16:37 +0200 Subject: [PATCH] Include attendees when converting meeting to dict Fix a few bugs on the move --- bigbluebutton/api/attendee.py | 4 ++-- bigbluebutton/api/meeting.py | 19 ++++++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/bigbluebutton/api/attendee.py b/bigbluebutton/api/attendee.py index 6b6cb2e..aaaa1f4 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 4d478ff..343de70 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 -- GitLab