api package

Submodules

api.admin module

api.apps module

class api.apps.ApiConfig(app_name, app_module)

Bases: django.apps.config.AppConfig

name = 'api'

api.models module

class api.models.Assignment(*args, **kwargs)

Bases: django.db.models.base.Model

Description for class Assignment

Variables
exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

assignment_name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

created_by

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

due_by

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

get_next_by_due_by(*, field=<django.db.models.fields.DateTimeField: due_by>, is_next=True, **kwargs)
get_previous_by_due_by(*, field=<django.db.models.fields.DateTimeField: due_by>, is_next=False, **kwargs)
homework_url

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

log_assignment_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <api.models.AssignmentManager object>
workspace_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

class api.models.AssignmentManager(*args, **kwargs)

Bases: django.db.models.manager.Manager

API’s to perform CRUD operations on Assignment table

create_new_assignment(assignment: dict)

Create new Assignment

Parameters

assignment –

Returns

delete_assignment(workspace_id, assignment_name)

Delete assignment

Parameters
  • workspace_id –

  • assignment_name –

Returns

get_assignment_for_team(workspace_id)

Get assignment assigned to a team

Parameters

workspace_id –

Returns

class api.models.Course(*args, **kwargs)

Bases: django.db.models.base.Model

Description for class Course

Variables
exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

admin_user_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

bot_token

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

course_name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

department

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

group_set

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

log_course_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <api.models.CourseManager object>
semester

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

student_set

Accessor to the related objects manager on the reverse side of a many-to-one relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Parent.children is a ReverseManyToOneDescriptor instance.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

workspace_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

class api.models.CourseManager(*args, **kwargs)

Bases: django.db.models.manager.Manager

API’s for Class Course

To perform CRUD operations on Course.

create_course(workspace_id, course_name, department, semester, bot_token, admin_user_id)

Creates Course

Parameters
  • workspace_id (str) – slackbot related id , 1 for each course

  • course_name (str) – Name of the course

  • department (int) – Name of the department that the course belongs to

  • semester (str) – Semester in which the course is offered

  • bot_token (str) – Slackbot related token

  • admin_user_id (str) – user id of the admin

Returns

message for successful creation

Return type

str

del_course(workspace_id, course_name, department)

delete the course

Parameters
  • workspace_id –

  • course_name –

  • department –

Returns

get_all_courses(workspace_id=None)

Retrieve all courses

Parameters

workspace_id –

Returns

get_course_details(workspace_id, course_name, department, semester)

Retrieve the details of the course

Parameters
  • workspace_id –

  • course_name –

  • department –

  • semester –

Returns

get_workspace_id(course)

Get the workspace if , given the course

Parameters

course –

Returns

is_user_id_admin_of_team(workspace_id, user_id)

check if user belongs to admin

Parameters
  • workspace_id (str) – slackbot related id , 1 for each course

  • user_id (str) – Id of the user performing operation on the table

Returns

True on success

Return type

bool

class api.models.Group(*args, **kwargs)

Bases: django.db.models.base.Model

Description for class Group

Variables
exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

group_number

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

log_group_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <api.models.GroupManager object>
registered_course

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

registered_course_id
student_set

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

class api.models.GroupManager(*args, **kwargs)

Bases: django.db.models.manager.Manager

API’s to perform CRUD operations on Group table

create_group(group_info: dict)

Create the group, and assign participants

Parameters

group_info –

Returns

del_group(group_number, registered_course_id)

delete the group

Parameters
  • group_number –

  • registered_course_id –

Returns

get_all_groups(course)

Retrieve all groups

Parameters

course –

Returns

get_group_details(group_number, course)

Get group details

Parameters
  • group_number –

  • course –

Returns

get_students_of_group(group_number, course)

Get list of students belonging to a particular group and course

Parameters
  • group_number –

  • course –

Returns

api.models.MAX_STUDENTS_IN_GROUP = 5

—models.py—

Structure

Models: Course, Student, Group, Assinment Managers: CourseManager, StudentManager, GroupManager, AssignmentManager

class api.models.Student(*args, **kwargs)

Bases: django.db.models.base.Model

Description for class Student

Variables
exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

email_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

group

Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.

In the example:

class Pizza(Model):
    toppings = ManyToManyField(Topping, related_name='pizzas')

Pizza.toppings and Topping.pizzas are ManyToManyDescriptor instances.

Most of the implementation is delegated to a dynamically defined manager class built by create_forward_many_to_many_manager() defined below.

log_student_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

name

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <api.models.StudentManager object>
registered_course

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

registered_course_id
slack_user_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

student_unity_id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

class api.models.StudentManager(*args, **kwargs)

Bases: django.db.models.manager.Manager

API’s to perform CRUD operations on manager tables.

assign_group(participant, course, group_number)

Assign group to a student

Parameters
  • participant –

  • course –

  • group_number –

Returns

create_student(student_unity_id, course, name, email_id, slack_user_id=None)

Create student entry

Parameters
  • student_unity_id –

  • course –

  • name –

  • email_id –

  • slack_user_id –

Returns

delete_student(email_id, course)

Delete student

Parameters
  • email_id –

  • course –

Returns

get_all_students()

Get all student details

Returns

get_student_details(email_id, course)

Get student details

Parameters
  • email_id –

  • course –

Returns

update_slack_user_id(email_id, course, slack_user_id)

Update user id for the slack

Parameters
  • email_id –

  • course –

  • slack_user_id –

Returns

api.request_dispatcher module

This modules has functions to dispatches all the supported commands for the classroom api’s.

Author: Ayushi Rajendra Kumar Date: 2020-09-02

api.request_dispatcher.dispatch_assignent_delete_request(request)

REST Request dispatcher- Delete Assignment

Parameters

request –

Returns

api.request_dispatcher.dispatch_assignent_post_request(request)

REST Request dispatcher- Create Assignment

Parameters

request –

Returns

api.request_dispatcher.dispatch_assignment_get_request(request)

REST Request dispatcher- get Assignment details

Parameters

request –

Returns

api.request_dispatcher.dispatch_course_create_request(request)

REST Request dispatcher- Create course

Parameters

request –

Returns

api.request_dispatcher.dispatch_course_delete_request(request)

REST Request dispatcher- Delete course

Parameters

request –

Returns

api.request_dispatcher.dispatch_course_get_request(request)

REST Request dispatcher- get course

Parameters

request –

Returns

api.request_dispatcher.dispatch_group_create_request(request)

REST Request dispatcher- Create group

Parameters

request –

Returns

api.request_dispatcher.dispatch_group_delete_request(request)

REST Request dispatcher- delete group

Parameters

request –

Returns

api.request_dispatcher.dispatch_group_get_request(request)

REST Request dispatcher- get group details

Parameters

request –

Returns

api.request_dispatcher.dispatch_student_create_request(request)

REST Request dispatcher- Create student

Parameters

request –

Returns

api.request_dispatcher.dispatch_student_delete_request(request)

REST Request dispatcher- delete student

Parameters

request –

Returns

api.request_dispatcher.dispatch_student_get_request(request)

REST Request dispatcher- get student

Parameters

request –

Returns

api.request_dispatcher.dispatch_update_student_details(request)

REST Request dispatcher- Update student

Parameters

request –

Returns

api.request_handler module

This modules has functions to handle all the supported commands for the classroom api’s.

Author: Ayushi Rajendra Kumar Date: 2020-09-02

api.request_handler.create_group(group_info: dict)

REST Request habdler- create group

Parameters

group_info –

Returns

api.request_handler.create_new_course(data)

REST Request habdler- create course

Parameters

data –

Returns

api.request_handler.create_new_homework(homework: dict)

REST Request habdler- create Assignment

Parameters

homework –

Returns

api.request_handler.create_student(data)

REST Request habdler- Create student

Parameters

data –

Returns

api.request_handler.delete_course(data)

REST Request habdler- Delete courses

Parameters

data –

Returns

api.request_handler.delete_group(data)

REST Request habdler- Delete group

Parameters

data –

Returns

api.request_handler.delete_homework(data)

REST Request habdler- Delete Assignment

Parameters

data –

Returns

api.request_handler.delete_student(data)

REST Request habdler- Delete student

Parameters

data –

Returns

api.request_handler.get_all_courses(workspace_id)

REST Request habdler- get all courses

Parameters

workspace_id –

Returns

api.request_handler.get_all_groups(workspace_id, course_id)

REST Request habdler- get groups

Parameters
  • workspace_id –

  • course_id –

Returns

api.request_handler.get_all_students()

REST Request habdler- get all student details

Returns

api.request_handler.get_course_details(workspace_id, data)

REST Request habdler- Get Course details

Parameters
  • workspace_id –

  • data –

Returns

api.request_handler.get_homeworks_for_team_id(workspace_id)

REST Request habdler- get Assignment

Parameters

workspace_id –

Returns

api.request_handler.get_student_details(email_id, workspace_id=None, course_id=None)

REST Request habdler- get student details

Parameters
  • email_id –

  • workspace_id –

  • course_id –

Returns

api.request_handler.get_students_of_group(workspace_id, course_id, group_number)

REST Request habdler- get students of groups

Parameters
  • workspace_id –

  • course_id –

  • group_number –

Returns

api.request_handler.missing_field_error(field)

error function

Parameters

field –

Returns

api.request_handler.update_student_details(data)

REST Request habdler- update student details

Parameters

data –

Returns

api.serializer module

class api.serializer.AssignmentSerializer(*args, **kwargs)

Bases: rest_framework.serializers.Serializer

Assignment serializer

create(validated_data)
update(instance, validated_data)
class api.serializer.CourseSerializer(*args, **kwargs)

Bases: rest_framework.serializers.Serializer

Course Serializer

create(validated_data)
update(instance, validated_data)
class api.serializer.GroupSerializer(*args, **kwargs)

Bases: rest_framework.serializers.Serializer

Group Serializer

create(validated_data)
update(instance, validated_data)
validate(attrs)
class api.serializer.ParticipantsSerializer(*args, **kwargs)

Bases: rest_framework.serializers.Serializer

Participant serializer

create(validated_data)
update(instance, validated_data)
class api.serializer.StudentSerializer(*args, **kwargs)

Bases: rest_framework.serializers.Serializer

Student serializer

create(validated_data)
update(instance, validated_data)
validate(data)

api.urls module

api.views module

class api.views.Assignment(**kwargs)

Bases: rest_framework.generics.ListAPIView, rest_framework.generics.CreateAPIView

Assignment view

delete(request, *args, **kwargs)
get(request, *args, **kwargs)
post(request, *args, **kwargs)
class api.views.Course(**kwargs)

Bases: rest_framework.generics.ListAPIView, rest_framework.generics.CreateAPIView

Course view

delete(request, *args, **kwargs)
get(request, *args, **kwargs)
post(request, *args, **kwargs)
class api.views.Group(**kwargs)

Bases: rest_framework.generics.ListAPIView, rest_framework.generics.CreateAPIView

Group view

delete(request, *args, **kwargs)
get(request, *args, **kwargs)
post(request, *args, **kwargs)
class api.views.Student(**kwargs)

Bases: rest_framework.generics.ListAPIView, rest_framework.generics.CreateAPIView, rest_framework.generics.UpdateAPIView, rest_framework.generics.DestroyAPIView

Student view

delete(request, *args, **kwargs)
get(request, *args, **kwargs)
patch(request, *args, **kwargs)
post(request, *args, **kwargs)
serializer_class

alias of api.serializer.StudentSerializer

Module contents