d2l_sdk 0.1.8 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,109 @@
1
1
  require_relative 'requests'
2
2
  require 'json-schema'
3
+
3
4
  ########################
4
5
  # Enrollments:##########
5
6
  ########################
6
7
 
8
+ # Delete a user’s enrollment in a provided org unit.
9
+ def delete_user_enrollment(user_id, org_unit_id)
10
+ path = "/d2l/api/lp/#{$lp_ver}/users/#{user_id}/orgUnits/#{org_unit_id}"
11
+ _delete(path)
12
+ # Returns: EnrollmentData JSON block showing the enrollment status
13
+ # just before this action deleted the enrollment of the user
14
+ end
15
+
16
+ # Delete a user’s enrollment in a provided org unit.
17
+ def delete_user_enrollment_alternative(user_id, org_unit_id)
18
+ path = "/d2l/api/lp/#{$lp_ver}/enrollments/orgUnits/#{org_unit_id}/users/#{user_id}"
19
+ _delete(path)
20
+ # Returns: EnrollmentData JSON block showing the enrollment status
21
+ # just before this action deleted the enrollment of the user
22
+ end
23
+
24
+ # Retrieve the enrolled users in the classlist for an org unit
25
+ def get_enrolled_users_in_classlist(org_unit_id)
26
+ path = "/d2l/api/lp/#{$lp_ver}/#{org_unit_id}/classlist/"
27
+ _get(path)
28
+ # Returns: JSON array of ClasslistUser data blocks.
29
+ end
30
+
31
+ # Retrieve the list of all enrollments for the current user
32
+ # Optional params:
33
+ # --orgUnitTypeId: CSV of D2LIDs
34
+ # --bookmark: String
35
+ # --sortBy: string
36
+ # --isActive: bool
37
+ # --startDateTime: UTCDateTime
38
+ # --endDateTime: UTCDateTime
39
+ # --canAccess: bool
40
+ def get_all_enrollments_of_current_user(bookmark = '', sort_by = '', is_active = nil,
41
+ start_date_time = '', end_date_time = '',
42
+ can_access = nil)
43
+ path = "/d2l/api/lp/#{$lp_ver}/enrollments/myenrollments/"
44
+ path += "?bookmark=#{bookmark}" if bookmark != ''
45
+ path += "?sortBy=#{sort_by}" if sort_by != ''
46
+ path += "?isActive=#{is_active}" if is_active != nil
47
+ path += "?startDateTime=#{start_date_time}" if start_date_time != ''
48
+ path += "?endDateTime=#{end_date_time}" if end_date_time != ''
49
+ path += "?canAccess=#{can_access}" if can_access != nil
50
+ _get(path)
51
+ # Returns: paged result set containing the resulting MyOrgUnitInfo data blocks
52
+ end
53
+
54
+ # Retrieve the enrollment details for the current user in the provided org unit.
55
+ def get_enrollments_details_of_current_user(org_unit_id)
56
+ path = "/d2l/api/lp/#{$lp_ver}/enrollments/myenrollments/#{org_unit_id}/"
57
+ _get(path)
58
+ # Returns: MyOrgUnitInfo JSON block.
59
+ end
60
+
61
+ # Retrieve the collection of users enrolled in the identified org unit.
62
+ # Optional params:
63
+ # --roleId: D2LID
64
+ # --bookmark: String
65
+ def get_org_unit_enrollments(org_unit_id, role_id = 0, bookmark = '')
66
+ path = "/d2l/api/lp/#{$lp_ver}/enrollments/orgUnits/#{org_unit_id}/users/"
67
+ path += "?roleId=#{role_id}" if role_id != 0
68
+ path += "?bookmark=#{bookmark}" if bookmark != ''
69
+ _get(path)
70
+ # Returns: paged result set containing the resulting OrgUnitUser data blocks
71
+ end
72
+
73
+ # Retrieve enrollment details for a user in the provided org unit.
74
+ # Note:
75
+ # Same as +get_user_enrollment_data_by_org_unit+
76
+ # This call is equivalent to the route that fetches by specifying the user first,
77
+ # and then the org unit.
78
+ def get_org_unit_enrollment_data_by_user(org_unit_id, user_id)
79
+ path = "/d2l/api/lp/#{$lp_ver}/orgUnits/#{org_unit_id}/users/#{user_id}"
80
+ _get(path)
81
+ # Returns: EnrollmentData JSON block.
82
+ end
83
+
84
+ # Retrieve a list of all enrollments for the provided user.
85
+ # Optional params:
86
+ # --orgUnitTypeId (CSV of D2LIDs)
87
+ # --roleId: D2LIDs
88
+ # --bookmark: string
89
+ def get_all_enrollments_of_user(user_id, org_unit_type_id = 0, role_id = 0,
90
+ bookmark = '')
91
+ path = "/d2l/api/lp/1.3/enrollments/users/#{user_id}/orgUnits/"
92
+ path += "?orgUnitTypeId=#{org_unit_type_id}" if org_unit_type_id != 0
93
+ path += "?roleId=#{role_id}" if role_id != 0
94
+ path += "?bookmark=#{bookmark}" if bookmark != ''
95
+ _get(path)
96
+ # Returns: paged result set w/ the resulting UserOrgUnit data blocks
97
+ end
98
+
99
+ # Retrieve enrollment details in an org unit for the provided user.
100
+ # Same as +get_org_unit_enrollment_data_by_user+
101
+ def get_user_enrollment_data_by_org_unit(user_id, org_unit_id)
102
+ path = "/d2l/api/lp/#{$lp_ver}/enrollments/users/#{user_id}/orgUnits/#{org_unit_id}"
103
+ _get(path)
104
+ # Returns: EnrollmentData JSON block.
105
+ end
106
+
7
107
  # Check the validity of the CreateEnrollmentData that is passed as a payload
8
108
  def check_create_enrollment_data_validity(enrollment_data)
9
109
  schema = {
@@ -32,102 +132,77 @@ def create_user_enrollment(course_enrollment_data)
32
132
  # Returns: EnrollmentData JSON block for the newly enrolled user.
33
133
  end
34
134
 
35
- # Retrieve enrollment details in an org unit for the provided user.
36
- # Same as +get_org_unit_enrollment_data_by_user+
37
- def get_user_enrollment_data_by_org_unit(user_id, org_unit_id)
38
- path = "/d2l/api/lp/#{$lp_ver}/enrollments/users/#{user_id}/orgUnits/#{org_unit_id}"
39
- _get(path)
40
- # Returns: EnrollmentData JSON block.
41
- end
42
135
 
43
- # Retrieve a list of all enrollments for the provided user.
44
- # Optional params:
45
- # --orgUnitTypeId (CSV of D2LIDs)
46
- # --roleId: D2LIDs
47
- # --bookmark: string
48
- def get_all_enrollments_of_user(user_id, org_unit_type_id = 0, role_id = 0,
49
- bookmark = '')
50
- path = "/d2l/api/lp/1.3/enrollments/users/#{user_id}/orgUnits/"
51
- path += "?orgUnitTypeId=#{org_unit_type_id}" if org_unit_type_id != 0
52
- path += "?roleId=#{role_id}" if role_id != 0
53
- path += "?bookmark=#{bookmark}" if bookmark != ''
54
- _get(path)
55
- # Returns: paged result set w/ the resulting UserOrgUnit data blocks
56
- end
136
+ ########################
137
+ # PINNING:##############
138
+ ########################
57
139
 
58
- # Retrieve enrollment details for a user in the provided org unit.
59
- # Note:
60
- # Same as +get_user_enrollment_data_by_org_unit+
61
- # This call is equivalent to the route that fetches by specifying the user first,
62
- # and then the org unit.
63
- def get_org_unit_enrollment_data_by_user(org_unit_id, user_id)
64
- path = "/d2l/api/lp/#{$lp_ver}/orgUnits/#{org_unit_id}/users/#{user_id}"
65
- _get(path)
66
- # Returns: EnrollmentData JSON block.
140
+ # REVIEW: Remove the pin from the provided org unit.
141
+ def delete_current_user_org_unit_pin(org_unit_id)
142
+ path = "/d2l/api/lp/#{$lp_ver}/enrollments/myenrollments/#{org_unit_id}/pin"
143
+ _delete(path)
144
+ # RETURNS: nil
67
145
  end
68
146
 
69
- # Retrieve the collection of users enrolled in the identified org unit.
70
- # Optional params:
71
- # --roleId: D2LID
72
- # --bookmark: String
73
- def get_org_unit_enrollments(org_unit_id, role_id = 0, bookmark = '')
74
- path = "/d2l/api/lp/#{$lp_ver}/enrollments/orgUnits/#{org_unit_id}/users/"
75
- path += "?roleId=#{role_id}" if role_id != 0
76
- path += "?bookmark=#{bookmark}" if bookmark != ''
77
- _get(path)
78
- # Returns: paged result set containing the resulting OrgUnitUser data blocks
147
+ # REVIEW: Pin an org unit to the top of the list of a user’s enrollments.
148
+ def pin_org_unit_for_current_context(org_unit_id)
149
+ path = "/d2l/api/lp/#{$lp_ver}/enrollments/myenrollments/#{org_unit_id}/pin"
150
+ _post(path, {})
151
+ # RETURNS: MyOrgUnitInfo JSON block.
79
152
  end
80
153
 
81
- # Retrieve the enrollment details for the current user in the provided org unit.
82
- def get_enrollments_details_of_current_user
83
- path = "/d2l/api/lp/#{$lp_ver}/enrollments/myenrollments/org_unit_id/"
84
- _get(path)
85
- # Returns: MyOrgUnitInfo JSON block.
86
- end
154
+ ########################
155
+ # GROUPS:###############
156
+ ########################
157
+ # NOTE: Groups functions now in "group.rb"
87
158
 
88
- # Retrieve the list of all enrollments for the current user
89
- # Optional params:
90
- # --orgUnitTypeId: CSV of D2LIDs
91
- # --bookmark: String
92
- # --sortBy: string
93
- # --isActive: bool
94
- # --startDateTime: UTCDateTime
95
- # --endDateTime: UTCDateTime
96
- # --canAccess: bool
97
- def get_all_enrollments_of_current_user(bookmark = '', sort_by = '', is_active = nil,
98
- start_date_time = '', end_date_time = '',
99
- can_access = nil)
100
- path = "/d2l/api/lp/#{$lp_ver}/enrollments/myenrollments/"
101
- path += "?bookmark=#{bookmark}" if bookmark != ''
102
- path += "?sortBy=#{sort_by}" if sort_by != ''
103
- path += "?isActive=#{is_active}" if is_active != nil
104
- path += "?startDateTime=#{start_date_time}" if start_date_time != ''
105
- path += "?endDateTime=#{end_date_time}" if end_date_time != ''
106
- path += "?canAccess=#{can_access}" if can_access != nil
107
- _get(path)
108
- # Returns: paged result set containing the resulting MyOrgUnitInfo data blocks
159
+ ########################
160
+ # SECTIONS:#############
161
+ ########################
162
+ # NOTE: Sections functions now in "section.rb"
163
+
164
+ ########################
165
+ # AUDITORS:#############
166
+ ########################
167
+ # NOTE: auditor_id's and auditee_id's are just user_id's.
168
+
169
+ # REVIEW: Remove an auditee from the list of users that an auditor is auditing.
170
+ # Input: auditee_id (D2LID as single JSON number) - Auditee to be removed
171
+ def remove_auditee(auditor_id, auditee_id)
172
+ path = "/d2l/api/le/#{$le_ver}/auditing/auditors/#{auditor_id}/auditees/"
173
+ _delete(path, true, {AuditeeId: auditee_id})
109
174
  end
110
175
 
111
- # Retrieve the enrolled users in the classlist for an org unit
112
- def get_enrolled_users_in_classlist(org_unit_id)
113
- path = "/d2l/api/lp/#{$lp_ver}/#{org_unit_id}/classlist/"
114
- _get(path)
115
- # Returns: JSON array of ClasslistUser data blocks.
176
+ # REVIEW: Retrieve information for an auditee.
177
+ # RETURNS: a AuditedUser JSON block.
178
+ def get_auditee(auditee_id)
179
+ path = "/d2l/api/le/#{$le_ver}/auditing/auditees/#{auditee_id}"
180
+ _get(path)
181
+ # RETURNS: a AuditedUser JSON block.
116
182
  end
117
183
 
118
- # Delete a user’s enrollment in a provided org unit.
119
- def delete_user_enrollment(user_id, org_unit_id)
120
- path = "/d2l/api/lp/#{$lp_ver}/users/#{user_id}/orgUnits/#{org_unit_id}"
121
- _delete(path)
122
- # Returns: EnrollmentData JSON block showing the enrollment status
123
- # just before this action deleted the enrollment of the user
184
+ # REVIEW: Retrieve information for an auditor.
185
+ # RETURNS: a Auditor JSON block.
186
+ def get_auditor(auditor_id)
187
+ path = "/d2l/api/le/#{$le_ver}/auditing/auditors/#{auditor_id}"
188
+ _get(path)
189
+ # RETURNS: a Auditor JSON block
124
190
  end
125
191
 
192
+ # REVIEW: Retrieve the list of users an auditor is auditing.
193
+ # RETURNS: a JSON array of Auditee blocks.
194
+ def get_auditor_auditees(auditor_id)
195
+ path = "/d2l/api/le/#{$le_ver}/auditing/auditors/#{auditor_id}/auditees/"
196
+ _get(path)
197
+ # RETURNS: a JSON array of Auditee blocks.
198
+ end
126
199
 
127
- # Delete a user’s enrollment in a provided org unit.
128
- def delete_user_enrollment_alternative(user_id, org_unit_id)
129
- path = "/d2l/api/lp/#{$lp_ver}/enrollments/orgUnits/#{org_unit_id}/users/#{user_id}"
130
- _delete(path)
131
- # Returns: EnrollmentData JSON block showing the enrollment status
132
- # just before this action deleted the enrollment of the user
200
+ # REVIEW: Add a user to the list of those an auditor is auditing.
201
+ # INPUT:
202
+ # JSON Param - auditee_id (D2LID as single JSON number) - Auditee to be added
203
+ # RETURNS: nil?
204
+ def add_auditor_auditee(auditor_id, auditee_id)
205
+ path = "/d2l/api/le/#{$le_ver}/auditing/auditors/#{auditor_id}/auditees/"
206
+ _post(path, auditee_id)
207
+ # RETURNS: nil?
133
208
  end
@@ -0,0 +1,352 @@
1
+ require_relative 'requests'
2
+ require 'json-schema'
3
+ ########################
4
+ # GRADES:###############
5
+ ########################
6
+
7
+ # REVIEW: Delete a specific grade object for a particular org unit.
8
+ # Return: nil
9
+ def delete_org_unit_grade_object(org_unit_id, grade_object_id)
10
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/#{grade_object_id}"
11
+ _delete(path)
12
+ end
13
+
14
+ # REVIEW: Retrieve all the current grade objects for a particular org unit.
15
+ # Return: This action returns a JSON array of GradeObject blocks.
16
+ def get_org_unit_grades(org_unit_id)
17
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/"
18
+ _get(path)
19
+ # RETURN: This action returns a JSON array of GradeObject blocks.
20
+ end
21
+
22
+ # REVIEW: Retrieve a specific grade object for a particular org unit.
23
+ # Return: This action returns a GradeObject JSON block.
24
+ def get_org_unit_grade_object(org_unit_id, grade_object_id)
25
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/#{grade_object_id}"
26
+ _get(path)
27
+ # RETURN: This action returns a GradeObject JSON block.
28
+ end
29
+
30
+ # TODO: Create a new grade object for a particular org unit.
31
+ # Return: This action returns a GradeObject JSON block for the grade object
32
+ # that the service just created, so you can quickly retrieve the grade object ID
33
+ def create_org_unit_grade_object(org_unit_id, grade_object)
34
+ # POST /d2l/api/le/(version)/(orgUnitId)/grades/
35
+ # NOTE: must be grade object of type numeric, passfail, selectbox, or text
36
+ # NOTE: the name must be unique!
37
+ # Return: This action returns a GradeObject JSON block for the grade object
38
+ # that the service just created, so you can quickly retrieve the grade object
39
+ # ID
40
+ end
41
+
42
+ # TODO: Update a specific grade object.
43
+ def update_org_unit_grade_object(org_unit_id, grade_object)
44
+ # NOTE: if new name, it must be Unique
45
+ # NOTE: must be grade object of type numeric, passfail, selectbox, or text
46
+ # PUT /d2l/api/le/(version)/(orgUnitId)/grades/(gradeObjectId)
47
+ # Return: This action returns a GradeObject JSON block for the grade object
48
+ # that the service just updated.
49
+ end
50
+
51
+ ########################
52
+ # GRADE CATEGORIES:#####
53
+ ########################
54
+
55
+ # REVIEW: Delete a specific grade category for a provided org unit.
56
+ def delete_org_unit_grade_category(org_unit_id, category_id)
57
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/categories/#{category_id}"
58
+ _delete(path)
59
+ end
60
+
61
+ # REVIEW: Retrieve a list of all grade categories for a provided org unit.
62
+ # Return: This action retrieves a JSON array of GradeObjectCategory blocks.
63
+ def get_org_unit_grade_categories(org_unit_id)
64
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/categories/"
65
+ _get(path)
66
+ # Return: This action retrieves a JSON array of GradeObjectCategory blocks.
67
+ end
68
+
69
+ # REVIEW: Retrieve a specific grade category for a provided org unit.
70
+ # Return: This action retrieves a GradeObjectCategory JSON block.
71
+ def get_org_unit_grade_category(org_unit_id, category_id)
72
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/categories/#{category_id}"
73
+ _get(path)
74
+ # Return: This action retrieves a GradeObjectCategory JSON block.
75
+ end
76
+
77
+ # TODO: Create a new grade category for a provided org unit.
78
+ # Return. This action returns the newly created grade object category in a
79
+ # GradeObjectCategory JSON block, so that you can quickly gather its grade
80
+ # category ID.
81
+ def create_org_unit_grade_category(org_unit_id, grade_category_data)
82
+ # POST /d2l/api/le/(version)/(orgUnitId)/grades/
83
+ # Return. This action returns the newly created grade object category in a
84
+ # GradeObjectCategory JSON block, so that you can quickly gather its grade
85
+ # category ID.
86
+ end
87
+
88
+ ########################
89
+ # GRADE SCHEMES:########
90
+ ########################
91
+
92
+ # REVIEW: Retrieve all the grade schemes for a provided org unit.
93
+ # Return: This action returns a JSON array of GradeScheme blocks.
94
+ def get_org_unit_grade_schemes(org_unit_id)
95
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/schemes/"
96
+ _get(path)
97
+ # Return: This action returns a JSON array of GradeScheme blocks.
98
+ end
99
+
100
+ # REVIEW: Retrieve a particular grade scheme.
101
+ # Return: This action returns a GradeScheme JSON block.
102
+ def get_org_unit_grade_scheme(org_unit_id, grade_scheme_id)
103
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/schemes/#{grade_scheme_id}"
104
+ _get(path)
105
+ # Return: This action returns a GradeScheme JSON block.
106
+ end
107
+
108
+ ########################
109
+ # GRADE VALUES:#########
110
+ ########################
111
+
112
+ # REVIEW: Retrieve the final grade value for the current user context.
113
+ # Return: This action returns a GradeValue JSON block containing the final
114
+ # calculated grade value for the current user context.
115
+ def get_current_user_final_grade(org_unit_id)
116
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/final/values/myGradeValue"
117
+ _get(path)
118
+ # Return: This action returns a GradeValue JSON block containing the final
119
+ # calculated grade value for the current user context.
120
+ end
121
+
122
+ # TODO: Retrieve a list of final grade values for the current user
123
+ # context across a number of org units.
124
+ # -INPUT: Input. When calling this action, you must provide a list of org unit
125
+ # IDs that amount to some or all of the calling user’s active enrollments.
126
+ # -RETURN: This action returns an ObjectListPage JSON block containing a list of
127
+ # final calculated grade values sorted by the OrgUnitIds that match the provided
128
+ # query parameter filters.
129
+ def get_current_user_final_grades(org_unit_ids_csv)
130
+ # RETURN: This action returns an ObjectListPage JSON block containing a list
131
+ # of final calculated grade values sorted by the OrgUnitIds that match the
132
+ # provided query parameter filters.
133
+ end
134
+
135
+ # REVIEW: Retrieve the final grade value for a particular user.
136
+ # INPUT: grade_type is an optional parameter. Forces grade to be returned as a certain
137
+ # grade type, such as calculated or adjusted.
138
+ # Return: This action returns a GradeValue JSON block containing the final
139
+ # calculated grade value for the provided user.
140
+ def get_user_final_grade(org_unit_id, user_id, grade_type = '')
141
+ path = "/d2l/api/le/#{le_ver}/#{org_unit_id}/grades/final/values/#{user_id}"
142
+ path += "?gradeType=#{grade_type}" if grade_type != ''
143
+ _get(path)
144
+ # Return: This action returns a GradeValue JSON block containing the final
145
+ # calculated grade value for the provided user.
146
+ end
147
+
148
+ # REVIEW: Retrieve each user’s grade value for a particular grade object.
149
+ # INPUT: sort = string, page_size = number, is_graded = boolean, search_text = string
150
+ # RETURN: This action returns an ObjectListPage JSON block containing a list
151
+ # of user grade values for your provided grade object.
152
+ def get_all_grade_object_grades(org_unit_id, grade_object_id, sort = '',
153
+ page_size = 0, is_graded = nil, search_text = '')
154
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/#{grade_object_id}/values/"
155
+ path += "?"
156
+ path += "sort=#{sort}&" if sort != ''
157
+ path += "pageSize=#{page_size}&" if page_size != 0
158
+ path += "isGraded=#{is_graded}&" if is_graded != nil
159
+ path += "searchText=#{search_text}" if search_text != ''
160
+ _get(path)
161
+ # RETURN: This action returns an ObjectListPage JSON block containing a list
162
+ # of user grade values for your provided grade object.
163
+ end
164
+
165
+ # REVIEW: Retrieve a specific grade value for the current user context assigned
166
+ # in a particular org unit.
167
+ # RETURN: This action returns a GradeValue JSON block.
168
+ def get_user_grade_object_grade(org_unit_id, grade_object_id, user_id)
169
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/#{grade_object_id}/values/#{user_id}"
170
+ _get(path)
171
+ # RETURN: This action returns a GradeValue JSON block.
172
+ end
173
+
174
+ # REVIEW: Retrieve all the grade objects for the current user context assigned
175
+ # in a particular org unit.
176
+ def get_current_user_org_unit_grades(org_unit_id)
177
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/values/myGradeValues/"
178
+ _get(path)
179
+ # RETURN: This action returns a JSON array of GradeValue blocks.
180
+ end
181
+
182
+ # REVIEW: Retrieve all the grade objects for a particular user assigned in an org unit.
183
+ def get_user_org_unit_grades(org_unit_id, user_id)
184
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/values/#{user_id}/"
185
+ _get(path)
186
+ # RETURN: This action returns a JSON array of GradeValue blocks.
187
+ end
188
+
189
+ ########################
190
+ # GRADE VALUES:#########
191
+ ########################
192
+
193
+ # REVIEW: Delete a course completion.
194
+ # RETURNS: nil
195
+ def delete_course_completion(org_unit_id, completion_id)
196
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/courseCompletion/#{completion_id}"
197
+ _delete(path)
198
+ end
199
+
200
+ # REVIEW: Retrieve all the course completion records for an org unit.
201
+ # RETURNS: This action returns a paged result set containing the resulting
202
+ # CourseCompletion data blocks for the segment following your bookmark
203
+ # parameter (or the first segment if the parameter is empty or missing).
204
+ def get_org_unit_completion_records(org_unit_id, user_id = 0, start_expiry = '',
205
+ end_expiry = '', bookmark = '')
206
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/courseCompletion/"
207
+ path += "?"
208
+ path += "userId=#{user_id}&" if user_id != 0
209
+ path += "startExpiry=#{start_expiry}&" if startExpiry != ''
210
+ path += "endExpiry=#{end_expiry}&" if endExpiry != ''
211
+ path += "bookmark=#{bookmark}" if bookmark != ''
212
+ _get(path)
213
+ # RETURNS: This action returns a paged result set containing the resulting
214
+ # CourseCompletion data blocks for the segment following your bookmark
215
+ # parameter (or the first segment if the parameter is empty or missing).
216
+ end
217
+
218
+ # REVIEW: Retrieve all the course completion records for a user.
219
+ # RETURNS: This action returns a paged result set containing the resulting
220
+ # CourseCompletion data blocks for the segment following your bookmark
221
+ # parameter (or the first segment if the parameter is empty or missing).
222
+ def get_user_completion_records(user_id, start_expiry = '', end_expiry = '',
223
+ bookmark = '')
224
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/courseCompletion/"
225
+ path += "?"
226
+ path += "startExpiry=#{start_expiry}&" if startExpiry != ''
227
+ path += "endExpiry=#{end_expiry}&" if endExpiry != ''
228
+ path += "bookmark=#{bookmark}" if bookmark != ''
229
+ _get(path)
230
+ # RETURNS: This action returns a paged result set containing the resulting
231
+ # CourseCompletion data blocks for the segment following your bookmark
232
+ # parameter (or the first segment if the parameter is empty or missing).
233
+ end
234
+
235
+ # TODO: Create a new course completion for an org unit.
236
+ # RETURNS: a CourseCompletion JSON block with the newly created course completion record.
237
+ def create_course_completion(org_unit_id, course_completion_data)
238
+ #CourseCompletionCreationData JSON data block example:
239
+ # {"UserId" => 0,
240
+ # "CompletedDate" => "UTCDateTime",
241
+ # "ExpiryDate" => "UTCDateTime" || nil}
242
+ # POST /d2l/api/le/(version)/(orgUnitId)/grades/courseCompletion/
243
+ end
244
+
245
+ # TODO: Update an existing course completion.
246
+ # RETURNS: a CourseCompletion JSON block with the newly created course completion record.
247
+ def update_course_completion(org_unit_id, completion_id, course_completion_data)
248
+ # CourseCompletionUpdateData JSON data block example:
249
+ # {"CompletedDate" => "UTCDateTime",
250
+ # "ExpiryDate" => "UTCDateTime" || nil}
251
+ # PUT /d2l/api/le/(version)/(orgUnitId)/grades/courseCompletion/(completionId)
252
+ end
253
+
254
+ ########################
255
+ # GRADE STATISTICS:#####
256
+ ########################
257
+
258
+ # REVIEW: Get statistics for a specified grade item.
259
+ # RETURNS: a GradeStatisticsInfo JSON block.
260
+ def get_grade_item_statistics(org_unit_id, grade_object_id)
261
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/#{grade_object_id}/statistics"
262
+ _get(path)
263
+ # RETURNS: a GradeStatisticsInfo JSON block.
264
+ end
265
+
266
+ ########################
267
+ # GRADE SETUP:##########
268
+ ########################
269
+
270
+ # REVIEW: Retrieve the grades configuration for the org unit.
271
+ # RETURNS: a GradeSetupInfo JSON block.
272
+ def get_org_unit_grade_config(org_unit_id)
273
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/setup/"
274
+ _get(path)
275
+ # RETURNS: a GradeSetupInfo JSON block.
276
+ end
277
+
278
+ # TODO: Update the grades configuration for the org unit.
279
+ # INPUT: a GradeSetupInfo JSON block. (grade_setup_info)
280
+ # RETURNS: a GradeSetupInfo JSON block.
281
+ def update_org_unit_grade_config(org_unit_id, grade_setup_info)
282
+ # Grade.GradeSetupInfo JSON data block example:
283
+ # {"GradingSystem" => "Points", # Other types: "Weighted", "Formula"
284
+ # "IsNullGradeZero" => false,
285
+ # "DefaultGradeSchemeId" => 0}
286
+ # PUT /d2l/api/le/(version)/(orgUnitId)/grades/setup/
287
+ # RETURNS: a GradeSetupInfo JSON block.
288
+ end
289
+
290
+ ########################
291
+ # GRADE EXEMPTIONS:#####
292
+ ########################
293
+
294
+ # REVIEW: Retrieve all the exempt users for a provided grade.
295
+ # RETURNS: a JSON array of User blocks.
296
+ def get_grade_exempt_users(org_unit_id, grade_object_id)
297
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/#{grade_object_id}/exemptions/"
298
+ _get(path)
299
+ # RETURNS: a JSON array of User blocks.
300
+ end
301
+
302
+ # REVIEW: Determine if a user is exempt from a grade.
303
+ # RETURNS: a User JSON block.
304
+ def get_is_user_exempt(org_unit_id, grade_object_id, user_id)
305
+ path = "GET /d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/#{grade_object_id}/exemptions/#{user_id}"
306
+ _get(path)
307
+ # RETURNS: a User JSON block.
308
+ end
309
+
310
+ # REVIEW: Exempt a user from a grade.
311
+ # RETURNS: a User JSON block.
312
+ def exempt_user_from_grade(org_unit_id, grade_object_id, user_id)
313
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/#{grade_object_id}/exemptions/#{user_id}"
314
+ _post(path, {})
315
+ # RETURNS: a User JSON block.
316
+ end
317
+
318
+ # REVIEW: Remove a user’s exemption from a grade.
319
+ # RETURNS: nil
320
+ def remove_user_grade_exemption(org_unit_id, grade_object_id, user_id)
321
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/#{grade_object_id}/exemptions/#{user_id}"
322
+ _delete(path)
323
+ # RETURNS: nil
324
+ end
325
+
326
+ #############################
327
+ # BULK GRADE EXEMPTIONS:#####
328
+ #############################
329
+
330
+ # REVIEW: Retrieve all the grade objects for a provided user in a provided org unit with exemption status included.
331
+ # RETURNS: BulkGradeObjectExemptionResult JSON block.
332
+ def get_user_grade_exemptions(org_unit_id, user_id)
333
+ path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/grades/exemptions/#{user_id}"
334
+ _get(path)
335
+ # RETURNS: BulkGradeObjectExemptionResult JSON block.
336
+ end
337
+
338
+ # TODO: Attempt to exempt or unexempt a set of grades for a user.
339
+ # INPUT: a BulkGradeObjectExemptionUpdate.
340
+ # NOTE: If a grade has been changed since the provided ExemptionAccessDate,
341
+ # a conflict will be added to the result set and that grade will not
342
+ # be exempted or unexempted.
343
+ # RETURNS: a JSON array of BulkGradeObjectExemptionConflict blocks.
344
+ def bulk_grade_exemption_update(org_unit_id, user_id, bulk_grade_exmption_update_block)
345
+ # Grade.BulkGradeObjectExemptionUpdate JSON data block example:
346
+ # {"ExemptedIds" => [0,1,2,3], # D2LIDs
347
+ # "UnexemptedIds" => [0,1,2,3], # D2LIDs
348
+ # "ExemptionAccessDate" => 'UTCDateTime'}
349
+
350
+ # POST /d2l/api/le/(version)/(orgUnitId)/grades/exemptions/(userId)
351
+ # RETURNS: a JSON array of BulkGradeObjectExemptionConflict blocks.
352
+ end