diff --git a/vc_zoom/indico_vc_zoom/api/client.py b/vc_zoom/indico_vc_zoom/api/client.py index 0f93962..9a9dba5 100644 --- a/vc_zoom/indico_vc_zoom/api/client.py +++ b/vc_zoom/indico_vc_zoom/api/client.py @@ -28,10 +28,7 @@ def _handle_response(resp, expected_code=200, expects_json=True): resp.raise_for_status() if resp.status_code != expected_code: raise HTTPError("Unexpected status code {}".format(resp.status_code), response=resp) - if expects_json: - return resp.json() - else: - return resp + return resp.json() if expects_json else resp class APIException(Exception): @@ -150,6 +147,8 @@ class UserComponent(BaseComponent): class ZoomClient(object): """Zoom REST API Python Client.""" + BASE_URI = "https://api.zoom.us/v2" + _components = { 'user': UserComponent, 'meeting': MeetingComponent, @@ -163,8 +162,6 @@ class ZoomClient(object): :param api_secret: the Zoom JWT API Secret :param timeout: the time out to use for API requests """ - BASE_URI = "https://api.zoom.us/v2" - # Setup the config details config = { "api_key": api_key, @@ -172,38 +169,33 @@ class ZoomClient(object): } # Instantiate the components - self.components = { - key: component(base_uri=BASE_URI, config=config, timeout=timeout) + key: component(base_uri=self.BASE_URI, config=config, timeout=timeout) for key, component in self._components.viewitems() } @property def meeting(self): """Get the meeting component.""" - return self.components.get("meeting") + return self.components['meeting'] @property def user(self): """Get the user component.""" - return self.components.get("user") + return self.components['user'] @property def webinar(self): - """Get the user component.""" - return self.components.get("webinar") + """Get the webinar component.""" + return self.components['webinar'] class ZoomIndicoClient(object): def __init__(self): - self._refresh_client() - - def _refresh_client(self): from indico_vc_zoom.plugin import ZoomPlugin - settings = ZoomPlugin.settings self.client = ZoomClient( - settings.get('api_key'), - settings.get('api_secret') + ZoomPlugin.settings.get('api_key'), + ZoomPlugin.settings.get('api_secret') ) def create_meeting(self, user_id, **kwargs): @@ -230,9 +222,6 @@ class ZoomIndicoClient(object): def delete_webinar(self, webinar_id): return _handle_response(self.client.webinar.delete(webinar_id), 204, expects_json=False) - def check_user_meeting_time(self, user_id, start_dt, end_dt): - pass - def get_user(self, user_id): return _handle_response(self.client.user.get(user_id)) diff --git a/vc_zoom/indico_vc_zoom/cli.py b/vc_zoom/indico_vc_zoom/cli.py index f2907b7..48c65e2 100644 --- a/vc_zoom/indico_vc_zoom/cli.py +++ b/vc_zoom/indico_vc_zoom/cli.py @@ -5,7 +5,7 @@ # them and/or modify them under the terms of the MIT License; # see the LICENSE file for more details. -from __future__ import unicode_literals +from __future__ import print_function, unicode_literals import click from terminaltables import AsciiTable @@ -36,4 +36,4 @@ def rooms(status=None): table = AsciiTable(table_data) for col in (0, 3, 4): table.justify_columns[col] = 'right' - print table.table + print(table.table) diff --git a/vc_zoom/indico_vc_zoom/forms.py b/vc_zoom/indico_vc_zoom/forms.py index abc71e2..704e4ee 100644 --- a/vc_zoom/indico_vc_zoom/forms.py +++ b/vc_zoom/indico_vc_zoom/forms.py @@ -9,7 +9,7 @@ from __future__ import unicode_literals from flask import session from wtforms.fields.core import BooleanField, StringField -from wtforms.fields.simple import HiddenField, TextAreaField +from wtforms.fields.simple import TextAreaField from wtforms.validators import DataRequired, ValidationError from indico.modules.vc.forms import VCRoomAttachFormBase, VCRoomFormBase diff --git a/vc_zoom/indico_vc_zoom/notifications.py b/vc_zoom/indico_vc_zoom/notifications.py index 0a544aa..da45dc3 100644 --- a/vc_zoom/indico_vc_zoom/notifications.py +++ b/vc_zoom/indico_vc_zoom/notifications.py @@ -26,7 +26,7 @@ def notify_host_start_url(vc_room): ) email = make_email(to_list, template=template_module, html=True) - send_email(email, None, 'Zoom') + send_email(email) def notify_new_host(actor, vc_room): @@ -41,4 +41,4 @@ def notify_new_host(actor, vc_room): new_host = principal_from_identifier(vc_room.data['host']) email = make_email({new_host.email}, cc_list={actor.email}, template=template_module, html=True) - send_email(email, None, 'Zoom') + send_email(email) diff --git a/vc_zoom/indico_vc_zoom/util.py b/vc_zoom/indico_vc_zoom/util.py index cb4ef21..253d19b 100644 --- a/vc_zoom/indico_vc_zoom/util.py +++ b/vc_zoom/indico_vc_zoom/util.py @@ -29,12 +29,12 @@ def find_enterprise_email(user): :return: the e-mail address if it exists, otherwise `None` """ from indico_vc_zoom.plugin import ZoomPlugin - providers = [auth.strip() for auth in ZoomPlugin.settings.get('email_domains').split(',')] + domains = [auth.strip() for auth in ZoomPlugin.settings.get('email_domains').split(',')] result = UserEmail.query.filter( UserEmail.user == user, ~User.is_blocked, ~User.is_deleted, - db.or_(UserEmail.email.ilike("%%@{}".format(provider)) for provider in providers) + db.or_(UserEmail.email.ilike('%@{}'.format(domain)) for domain in domains) ).join(User).first() return result.email if result else None