api package¶
Subpackages¶
- api.migrations package
- Submodules
- api.migrations.0001_initial module
- api.migrations.0002_auto_20200920_1131 module
- api.migrations.0003_partof module
- api.migrations.0004_remove_student_group module
- api.migrations.0005_partof_registered_course module
- api.migrations.0006_auto_20200920_1800 module
- api.migrations.0007_auto_20200920_1813 module
- api.migrations.0008_auto_20200920_1837 module
- Module contents
- api.tests package
Submodules¶
api.admin module¶
api.apps module¶
api.models module¶
-
class
api.models.Assignment(*args, **kwargs)¶ Bases:
django.db.models.base.ModelDescription for class Assignment
- Variables
log_assignment_id – Primary key indexing for student_id
workspace_id – slackbot workspace- unique
assignment_name – name of the assignment- unique
due_by – to be submited by - date time
homework_url – url for the assignment
created_by – name of the creator of assignment
-
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.ManagerAPI’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.ModelDescription for class Course
- Variables
log_course_id – Primary key indexing for course
workspace_id – slackbot workspace id -unique
semester – Semester for which course is offered - unique
course_name – name of the course - unique
department – Department that offers this course
bot_token – token for internal communication with slackbot
admin_user_id – user id/role who can edit the course field
-
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.childrenis aReverseManyToOneDescriptorinstance.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.childrenis aReverseManyToOneDescriptorinstance.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.ManagerAPI’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.ModelDescription for class Group
- Variables
log_group_id – Primary key indexing for group
group_number – group number - unique
registered_course – related course - unique
-
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.parentis aForwardManyToOneDescriptorinstance.
-
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.toppingsandTopping.pizzasareManyToManyDescriptorinstances.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.ManagerAPI’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.ModelDescription for class Student
- Variables
log_student_id – Primary key indexing for student_id
student_unity_id – unitiy id of student- unique
registered_course – related course
group – list of groups that the user belongs to
name – related course
email_id – users email id- unique
slack_user_id – slack user
-
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.toppingsandTopping.pizzasareManyToManyDescriptorinstances.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.parentis aForwardManyToOneDescriptorinstance.
-
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.ManagerAPI’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.SerializerAssignment serializer
-
create(validated_data)¶
-
update(instance, validated_data)¶
-
-
class
api.serializer.CourseSerializer(*args, **kwargs)¶ Bases:
rest_framework.serializers.SerializerCourse Serializer
-
create(validated_data)¶
-
update(instance, validated_data)¶
-
-
class
api.serializer.GroupSerializer(*args, **kwargs)¶ Bases:
rest_framework.serializers.SerializerGroup Serializer
-
create(validated_data)¶
-
update(instance, validated_data)¶
-
validate(attrs)¶
-
api.urls module¶
api.views module¶
-
class
api.views.Assignment(**kwargs)¶ Bases:
rest_framework.generics.ListAPIView,rest_framework.generics.CreateAPIViewAssignment 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.CreateAPIViewCourse 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.CreateAPIViewGroup 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.DestroyAPIViewStudent view
-
delete(request, *args, **kwargs)¶
-
get(request, *args, **kwargs)¶
-
patch(request, *args, **kwargs)¶
-
post(request, *args, **kwargs)¶
-
serializer_class¶ alias of
api.serializer.StudentSerializer
-