from canvasapi import Canvas as PyCanvas
from canvasapi.group import Group, GroupMembership

from joint_teapot.config import settings


class Canvas:
    def __init__(
        self,
        access_token: str = settings.canvas_access_token,
        courseID: int = settings.course_id,
    ):
        self.canvas = PyCanvas("https://umjicanvas.com/", access_token)
        self.course = self.canvas.get_course(courseID)
        self.students = self.course.get_users(
            enrollment_type=["student"], include=["email"]
        )
        self.assignments = self.course.get_assignments()
        self.groups = self.course.get_groups()
        # for attr in ["sis_login_id", "sortable_name"]:
        #     assert hasattr(
        #         self.students[0], attr
        #     ), f"Unable to gather students' {attr}, please contact the Canvas site admin"
        group: Group
        for group in self.groups:
            membership: GroupMembership
            print(group.__dict__)
            for membership in group.get_memberships():
                print(membership.user_id, end=", ")
            print("")


if __name__ == "__main__":
    canvas = Canvas()
    # for student in canvas.students:
    #     print(student.__dict__)