diff --git a/gapi/apis/calendar_api/calendar_api.py b/gapi/apis/calendar_api/calendar_api.py index 0b49a76..49a47cf 100644 --- a/gapi/apis/calendar_api/calendar_api.py +++ b/gapi/apis/calendar_api/calendar_api.py @@ -23,7 +23,8 @@ class calendar_api(API): self.calendars = self.get_calendars() self.ids = dict( - (calendar["summary"].lower(), calendar["id"]) for calendar in self.calendars + (calendar["summary"].lower(), calendar["id"]) + for calendar in self.calendars.values() ) def create_event(self, calendar_id, body): @@ -62,13 +63,14 @@ class calendar_api(API): def get_calendars(self): page_token = None - cl = [] + cl = {} first = True while page_token or first: first = False calendar_list_service = self.service.calendarList() calendar_list = calendar_list_service.list(pageToken=page_token).execute() - cl += list(calendar_entry for calendar_entry in calendar_list["items"]) + for calendar_entry in calendar_list["items"]: + cl[calendar_entry["id"]] = calendar_entry page_token = calendar_list.get("nextPageToken") return cl diff --git a/gapi/apis/calendar_api/models.py b/gapi/apis/calendar_api/models.py index 274a159..7643356 100644 --- a/gapi/apis/calendar_api/models.py +++ b/gapi/apis/calendar_api/models.py @@ -21,7 +21,31 @@ class weekdays(IntEnum): class Calendar: """Model for representing a Google calendar""" - pass + def __init__(self, api: calendar_api, calendar_id): + self.api = api + + if calendar_id in api.ids.keys(): + self.name = calendar_id + self.calendar_id = self.api.ids[self.name] + elif calendar_id in api.ids.values(): + self.name = self.api.calendars[calendar_id]["summary"] + self.id = calendar_id + else: + raise ValueError("Non-existent calendar specified") + self.calendar_id = calendar_id + + def update_or_add_0event(self, event: Event): + event.upload(self.api, self.calendar_id) + + def search_events(self, event_name): + pass + + +def calendar_dict(api: calendar_api): + return dict( + (calendar_name, Calendar(api, calendar_name)) + for calendar_name in api.ids.keys() + ) class Event: