Skip to content
This repository has been archived by the owner on Sep 1, 2022. It is now read-only.

Commit

Permalink
write new courses
Browse files Browse the repository at this point in the history
  • Loading branch information
zkagin committed Sep 26, 2020
1 parent f1fc8f0 commit 138fd56
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 2 deletions.
10 changes: 10 additions & 0 deletions google_classroom/endpoints/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -327,4 +327,14 @@ def sync_data(self, data=None):
)
to_create = data[data.alias.isin(left_only.alias)].reset_index(drop=True)
to_delete = db_df[db_df.alias.isin(right_only.alias)].reset_index(drop=True)

for item in to_create.to_dict(orient="records"):
item["ownerId"] = item["teacher_email"]
item["id"] = item["alias"]
del item["teacher_email"]
del item["alias"]
request = self.create_new_item(item)
result = request.execute()
logging.info(f"{self.classname()}: Created class: {result}")

return (to_create, to_delete)
4 changes: 4 additions & 0 deletions google_classroom/endpoints/course.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,7 @@ def return_cleaned_sync_data(self):
df = df.rename(columns={"id": "courseId"})
df = df[["courseId", "name", "section"]]
return df.astype("str")

def create_new_item(self, course):
course["courseState"] = "ACTIVE"
return self.service.courses().create(body=course)
3 changes: 1 addition & 2 deletions google_classroom/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,7 @@ def pull_data(config, creds, sql):

def sync_all_data(config, creds, sql):
classroom_service = build("classroom", "v1", credentials=creds)
(to_create, to_delete) = Courses(classroom_service, sql, config).sync_data()
print("Data syncing is not yet available.")
Courses(classroom_service, sql, config).sync_data()


if __name__ == "__main__":
Expand Down
12 changes: 12 additions & 0 deletions tests/mock_response.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,15 @@ def execute(self):
return self.result


class FakeCreateRequest:
def __init__(self, *args, **kwargs):
self.args = args
self.kwargs = kwargs

def execute(self):
pass


class FakeEndpoint:
def __init__(self, result):
self.result = result
Expand All @@ -66,6 +75,9 @@ def list(self, *args, **kwargs):
def get(self, *args, **kwargs):
return FakeRequest(self.result, *args, **kwargs)

def create(self, *args, **kwargs):
return FakeCreateRequest(*args, **kwargs)


class FakeService:
class Courses(FakeEndpoint):
Expand Down

0 comments on commit 138fd56

Please sign in to comment.