Browse Source

Starting on the Calendar class. Will offload api methods to the

calendar class
master
Raphael Roberts 6 years ago
parent
commit
fd8aac0679
  1. 8
      gapi/apis/calendar_api/calendar_api.py
  2. 26
      gapi/apis/calendar_api/models.py

8
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

26
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:

Loading…
Cancel
Save