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.
- checksums.yaml +4 -4
- data/lib/d2l_sdk.rb +16 -14
- data/lib/d2l_sdk/auth.rb +1 -1
- data/lib/d2l_sdk/config_variables.rb +81 -5
- data/lib/d2l_sdk/course.rb +184 -136
- data/lib/d2l_sdk/course_content.rb +148 -23
- data/lib/d2l_sdk/course_template.rb +78 -69
- data/lib/d2l_sdk/demographics.rb +62 -22
- data/lib/d2l_sdk/enroll.rb +159 -84
- data/lib/d2l_sdk/grades.rb +352 -0
- data/lib/d2l_sdk/group.rb +1 -0
- data/lib/d2l_sdk/news.rb +97 -0
- data/lib/d2l_sdk/org_unit.rb +205 -167
- data/lib/d2l_sdk/requests.rb +3 -14
- data/lib/d2l_sdk/section.rb +77 -52
- data/lib/d2l_sdk/semester.rb +3 -0
- data/lib/d2l_sdk/setup_versions.rb +14 -0
- data/lib/d2l_sdk/user.rb +334 -68
- data/lib/d2l_sdk/version.rb +1 -1
- metadata +4 -2
data/lib/d2l_sdk/group.rb
CHANGED
@@ -3,6 +3,7 @@ require 'json-schema'
|
|
3
3
|
####################################
|
4
4
|
# Groups/Group Categories:##########
|
5
5
|
####################################
|
6
|
+
|
6
7
|
# Delete a particular group category from an org unit.
|
7
8
|
def delete_group_category(org_unit_id, group_category_id)
|
8
9
|
path = "/d2l/api/lp/#{$lp_ver}/#{org_unit_id}/groupcategories/#{group_category_id}"
|
data/lib/d2l_sdk/news.rb
CHANGED
@@ -4,6 +4,19 @@ require 'json-schema'
|
|
4
4
|
# News:##########
|
5
5
|
#################
|
6
6
|
|
7
|
+
# REVIEW: Delete a particular news item from an org unit.
|
8
|
+
def delete_news_item(org_unit_id, news_item_id)
|
9
|
+
path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/news/#{news_item_id}"
|
10
|
+
_delete(path)
|
11
|
+
end
|
12
|
+
|
13
|
+
# REVIEW: Delete an attachment from an org unit’s news item.
|
14
|
+
def delete_news_item_attachment(org_unit_id, news_item_id, file_id)
|
15
|
+
path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/news/#{news_item_id}/attachments/#{file_id}"
|
16
|
+
_delete(path)
|
17
|
+
end
|
18
|
+
|
19
|
+
# REVIEW: Fetch the feed for the current user context.
|
7
20
|
# if since not specified, only includes most 'recent' feed items
|
8
21
|
# if since specified but until is not, all items since 'since' are fetched
|
9
22
|
# if since and until are specified, all items between these two dates are fetched
|
@@ -18,3 +31,87 @@ def get_current_user_feed(since = "", _until = "")
|
|
18
31
|
end
|
19
32
|
_get(path)
|
20
33
|
end
|
34
|
+
|
35
|
+
# REVIEW: Retrieve a list of news items for an org unit.
|
36
|
+
def get_org_unit_news_items(org_unit_id, since = "")
|
37
|
+
path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/news/"
|
38
|
+
path += "?since=#{since}" if since != ""
|
39
|
+
_get(path)
|
40
|
+
end
|
41
|
+
|
42
|
+
# NOTE: UNSTABLE!!!
|
43
|
+
# REVIEW: Retrieve data blocks containing the properties of deleted news items.
|
44
|
+
def get_deleted_news(org_unit_id, global = nil)
|
45
|
+
# GET /d2l/api/le/(version)/(orgUnitId)/news/deleted/
|
46
|
+
path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/news/deleted/"
|
47
|
+
path += "?global=#{global}" unless global.nil?
|
48
|
+
_get(path)
|
49
|
+
end
|
50
|
+
|
51
|
+
# REVIEW: Retrieve a particular news item for an org unit.
|
52
|
+
def get_org_unit_news_item(org_unit_id, news_item_id)
|
53
|
+
path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/news/#{news_item_id}"
|
54
|
+
_get(path)
|
55
|
+
end
|
56
|
+
|
57
|
+
# REVIEW: Retrieve an attachment for an org unit’s news item.
|
58
|
+
def get_news_item_attachment(org_unit_id, news_item_id, file_id)
|
59
|
+
path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/news/#{news_item_id}/attachments/#{file_id}"
|
60
|
+
_get(path)
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
# TODO: Create a news item for an org unit.
|
65
|
+
# INPUT: multipart/mixed POST body
|
66
|
+
# part 1: news item data JSON
|
67
|
+
# part 2: attachments
|
68
|
+
def create_news_item(org_unit_id, news_item_data, attachments = [])
|
69
|
+
# POST /d2l/api/le/(version)/(orgUnitId)/news/
|
70
|
+
end
|
71
|
+
|
72
|
+
# NOTE: UNSTABLE!!!
|
73
|
+
# REVIEW: Restore a particular news item by its news_item_id
|
74
|
+
def restore_news_item(org_unit_id, news_item_id)
|
75
|
+
path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/news/deleted/#{news_item_id}/restore"
|
76
|
+
_post(path, {})
|
77
|
+
end
|
78
|
+
|
79
|
+
# TODO: Add an attachment to a news item for an org unit.
|
80
|
+
# INPUT: Use a multipart/form-data POST body to provide the attachment data to
|
81
|
+
# add to the news item, with the part’s Content-Disposition header’s
|
82
|
+
# name field set to “file”.
|
83
|
+
def add_news_item_attachment(org_unit_id, news_item_id, attachment_data)
|
84
|
+
# POST /d2l/api/le/(version)/(orgUnitId)/news/(newsItemId)/attachments/
|
85
|
+
end
|
86
|
+
|
87
|
+
# REVIEW: Dismiss (hide) a news item for an org unit.
|
88
|
+
def hide_news_item(org_unit_id, news_item_id)
|
89
|
+
path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/news/#{news_item_id}/dismiss"
|
90
|
+
_post(path, {})
|
91
|
+
end
|
92
|
+
|
93
|
+
# REVIEW: Publish a draft news item for an org unit.
|
94
|
+
def publish_draft_news_item(org_unit_id, news_item_id)
|
95
|
+
path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/news/#{news_item_id}/publish"
|
96
|
+
_post(path, {})
|
97
|
+
end
|
98
|
+
|
99
|
+
# REVIEW: Restore (unhide) a news item for an org unit.
|
100
|
+
def unhide_news_item(org_unit_id, news_item_id)
|
101
|
+
path = "/d2l/api/le/#{$le_ver}/#{org_unit_id}/news/#{news_item_id}/restore"
|
102
|
+
_post(path, {})
|
103
|
+
end
|
104
|
+
|
105
|
+
# TODO: Update a news item for an org unit.
|
106
|
+
# INPUT: JSON Parameter of type NewsItemData (News.NewsItemData)
|
107
|
+
def update_news_item(org_unit_id, news_item_id, news_item_data)
|
108
|
+
# Example of News.NewsItemData JSON Data Block:
|
109
|
+
# {"Title" => "string",
|
110
|
+
# "Body" => {'Content' => "content", "Type" => "type"} # RichTextInput -- e.g. {'Content'=>'x', 'Type'=>'y'}
|
111
|
+
# "StartDate": "<string:UTCDateTime>",
|
112
|
+
# "EndDate": "<string:UTCDateTime>", # or nil
|
113
|
+
# "IsGlobal": false,
|
114
|
+
# "IsPublished": false,
|
115
|
+
# "ShowOnlyInCourseOfferings": false}
|
116
|
+
# PUT /d2l/api/le/(version)/(orgUnitId)/news/(newsItemId)
|
117
|
+
end
|
data/lib/d2l_sdk/org_unit.rb
CHANGED
@@ -1,85 +1,48 @@
|
|
1
1
|
require_relative 'requests'
|
2
2
|
require 'json-schema'
|
3
|
+
|
3
4
|
########################
|
4
|
-
#
|
5
|
+
# ACTIONS:##############
|
5
6
|
########################
|
6
7
|
|
7
|
-
|
8
|
-
#
|
9
|
-
|
10
|
-
|
11
|
-
def get_org_unit_descendants(org_unit_id, ou_type_id = 0)
|
12
|
-
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/#{org_unit_id}/descendants/"
|
13
|
-
path += "?ouTypeId=#{ou_type_id}" if ou_type_id != 0
|
14
|
-
_get(path)
|
15
|
-
# return JSON array of OrgUnit data blocks
|
16
|
-
end
|
17
|
-
|
18
|
-
# gets a paged result of the org unit's descendants. The descendants are
|
19
|
-
# first referenced by a preformatted path; then if there is a defined bookmark,
|
20
|
-
# the bookmark parameter is appended to the path.
|
21
|
-
#
|
22
|
-
# return: JSON array of org unit descendants (paged)
|
23
|
-
def get_paged_org_unit_descendants(org_unit_id, ou_type_id = 0, bookmark = '')
|
24
|
-
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/#{org_unit_id}/descendants/paged/"
|
25
|
-
path += "?ouTypeId=#{ou_type_id}" if ou_type_id != 0
|
26
|
-
path += "?bookmark=#{bookmark}" if bookmark != ''
|
27
|
-
_get(path)
|
28
|
-
# return paged json of org_unit descendants
|
29
|
-
end
|
30
|
-
|
31
|
-
# gets all parents of a particular org unit, as referenced by the
|
32
|
-
# "org_unit_id" argument. A get request is then performed by a preformatted
|
33
|
-
# path.
|
34
|
-
def get_org_unit_parents(org_unit_id, ou_type_id = 0)
|
35
|
-
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/#{org_unit_id}/parents/"
|
36
|
-
path += "?ouTypeId=#{ou_type_id}" if ou_type_id != 0
|
8
|
+
# Retrieves the organization info. Only gets a small amount of information,
|
9
|
+
# but may be useful in some instances.
|
10
|
+
def get_organization_info
|
11
|
+
path = "/d2l/api/lp/#{$lp_ver}/organization/info"
|
37
12
|
_get(path)
|
38
|
-
# return
|
13
|
+
# return: Organization JSON block
|
39
14
|
end
|
40
15
|
|
41
|
-
|
42
|
-
#
|
43
|
-
|
44
|
-
def add_parent_to_org_unit(parent_ou_id, child_ou_id)
|
45
|
-
# Must follow structure of data
|
46
|
-
# (course <-- semester <== org -->custom dept--> dept -->templates--> courses)
|
47
|
-
# Refer to valence documentation for further structural understanding..
|
48
|
-
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/#{child_ou_id}/parents/"
|
49
|
-
_post(path, parent_ou_id)
|
50
|
-
end
|
16
|
+
########################
|
17
|
+
# STRUCTURE:############
|
18
|
+
########################
|
51
19
|
|
52
|
-
#
|
53
|
-
#
|
54
|
-
#
|
55
|
-
|
56
|
-
|
57
|
-
path
|
58
|
-
path += "?ouTypeId=#{ou_type_id}" if ou_type_id != 0
|
59
|
-
_get(path)
|
60
|
-
# return json of org_unit ancestors
|
20
|
+
# This deletes the relationship between a parent ou and a child ou by
|
21
|
+
# performing a delete method from the parent's children and specifying this
|
22
|
+
# child through its id.
|
23
|
+
def delete_relationship_of_child_with_parent(parent_ou_id, child_ou_id)
|
24
|
+
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/#{parent_ou_id}/children/#{child_ou_id}"
|
25
|
+
_delete(path)
|
61
26
|
end
|
62
27
|
|
63
|
-
#
|
64
|
-
#
|
65
|
-
#
|
66
|
-
def
|
67
|
-
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/#{
|
68
|
-
path
|
69
|
-
_get(path)
|
70
|
-
# return json of org_unit children
|
28
|
+
# This deletes the relationship between a child ou and a parent ou by
|
29
|
+
# performing a delete method from the child's parents and specifying this
|
30
|
+
# parent through its id.
|
31
|
+
def delete_relationship_of_parent_with_child(parent_ou_id, child_ou_id)
|
32
|
+
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/#{child_ou_id}/parents/#{parent_ou_id}"
|
33
|
+
_delete(path)
|
71
34
|
end
|
72
35
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/#{org_unit_id}/children/paged/"
|
36
|
+
def get_properties_of_all_org_units(org_unit_type = '', org_unit_code = '', org_unit_name = '',
|
37
|
+
bookmark = '')
|
38
|
+
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/"
|
39
|
+
path += "?orgUnitType=#{org_unit_type}" if org_unit_type != ''
|
40
|
+
path += "?orgUnitCode=#{org_unit_code}" if org_unit_code != ''
|
41
|
+
path += "?orgUnitName=#{org_unit_name}" if org_unit_name != ''
|
80
42
|
path += "?bookmark=#{bookmark}" if bookmark != ''
|
81
43
|
_get(path)
|
82
|
-
#
|
44
|
+
# ONLY RETRIEVES FIRST 100 after bookmark
|
45
|
+
# returns: paged result of OrgUnitProperties blocks
|
83
46
|
end
|
84
47
|
|
85
48
|
# gets all properties of a particular org unit, as referenced by the
|
@@ -91,22 +54,6 @@ def get_org_unit_properties(org_unit_id)
|
|
91
54
|
# return json of org_unit properties
|
92
55
|
end
|
93
56
|
|
94
|
-
# This deletes the relationship between a parent ou and a child ou by
|
95
|
-
# performing a delete method from the parent's children and specifying this
|
96
|
-
# child through its id.
|
97
|
-
def delete_relationship_of_child_with_parent(parent_ou_id, child_ou_id)
|
98
|
-
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/#{parent_ou_id}/children/#{child_ou_id}"
|
99
|
-
_delete(path)
|
100
|
-
end
|
101
|
-
|
102
|
-
# This deletes the relationship between a child ou and a parent ou by
|
103
|
-
# performing a delete method from the child's parents and specifying this
|
104
|
-
# parent through its id.
|
105
|
-
def delete_relationship_of_parent_with_child(parent_ou_id, child_ou_id)
|
106
|
-
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/#{child_ou_id}/parents/#{parent_ou_id}"
|
107
|
-
_delete(path)
|
108
|
-
end
|
109
|
-
|
110
57
|
# This retrieves a paged result of all the childless org units within the
|
111
58
|
# organization. As this is paged, it only retrieves the first 100 from the
|
112
59
|
# beginning of the request. If bookmark is not specified, then it only retrieves
|
@@ -124,18 +71,6 @@ def get_all_childless_org_units(org_unit_type = '', org_unit_code = '', org_unit
|
|
124
71
|
# ONLY RETRIEVES FIRST 100
|
125
72
|
end
|
126
73
|
|
127
|
-
def get_properties_of_all_org_units(org_unit_type = '', org_unit_code = '', org_unit_name = '',
|
128
|
-
bookmark = '')
|
129
|
-
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/"
|
130
|
-
path += "?orgUnitType=#{org_unit_type}" if org_unit_type != ''
|
131
|
-
path += "?orgUnitCode=#{org_unit_code}" if org_unit_code != ''
|
132
|
-
path += "?orgUnitName=#{org_unit_name}" if org_unit_name != ''
|
133
|
-
path += "?bookmark=#{bookmark}" if bookmark != ''
|
134
|
-
_get(path)
|
135
|
-
# ONLY RETRIEVES FIRST 100 after bookmark
|
136
|
-
# returns: paged result of OrgUnitProperties blocks
|
137
|
-
end
|
138
|
-
|
139
74
|
# Retrieves a paged result of all orphaned org units within the organization.
|
140
75
|
# This is a paged result, so only for the first 100 from the beginning bookmark
|
141
76
|
# are retrieved. Simply put, if the bookmark is not defined, it only gets the
|
@@ -152,50 +87,70 @@ def get_all_orphans(org_unit_type = '', org_unit_code = '', org_unit_name = '',
|
|
152
87
|
_get(path)
|
153
88
|
end
|
154
89
|
|
155
|
-
#
|
156
|
-
#
|
157
|
-
# child_org_unit_id argument. Then, a path is created to reference the children
|
158
|
-
# of the soon-to-be parent and executing a post http method that adds the child.
|
90
|
+
# Gets all org unit ancestors. Simply, this method references all of the
|
91
|
+
# ancestors of the particular org unit and then returns them in a JSON array.
|
159
92
|
#
|
160
|
-
#
|
161
|
-
def
|
93
|
+
# return: JSON array of org_unit ancestors.
|
94
|
+
def get_org_unit_ancestors(org_unit_id, ou_type_id = 0)
|
95
|
+
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/#{org_unit_id}/ancestors/"
|
96
|
+
path += "?ouTypeId=#{ou_type_id}" if ou_type_id != 0
|
97
|
+
_get(path)
|
98
|
+
# return json of org_unit ancestors
|
99
|
+
end
|
100
|
+
|
101
|
+
# gets all children of a particular org unit, as referenced by the
|
102
|
+
# "org_unit_id" argument. A get request is then performed by a preformatted
|
103
|
+
# path.
|
104
|
+
def get_org_unit_children(org_unit_id, ou_type_id = 0)
|
162
105
|
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/#{org_unit_id}/children/"
|
163
|
-
|
106
|
+
path += "?ouTypeId=#{ou_type_id}" if ou_type_id != 0
|
107
|
+
_get(path)
|
108
|
+
# return json of org_unit children
|
164
109
|
end
|
165
110
|
|
166
|
-
#
|
167
|
-
#
|
168
|
-
#
|
111
|
+
# Gets all children of the org unit, but in a paged result. These are first
|
112
|
+
# referenced via the org_unit_id argument, and then a bookmark is appended
|
113
|
+
# if there is one specified. This is then returned as a json array.
|
169
114
|
#
|
170
|
-
# return: JSON array of
|
171
|
-
def
|
172
|
-
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/
|
115
|
+
# return: JSON array of org unit children.
|
116
|
+
def get_paged_org_unit_children(org_unit_id, bookmark = '')
|
117
|
+
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/#{org_unit_id}/children/paged/"
|
173
118
|
path += "?bookmark=#{bookmark}" if bookmark != ''
|
174
119
|
_get(path)
|
175
|
-
#
|
120
|
+
# return json of org_unit children
|
176
121
|
end
|
177
122
|
|
178
|
-
#
|
179
|
-
#
|
180
|
-
#
|
181
|
-
def
|
182
|
-
path = "/d2l/api/lp/#{$lp_ver}/orgstructure
|
183
|
-
|
123
|
+
# gets all descendents of a particular org unit, as referenced by the
|
124
|
+
# "org_unit_id" argument. A get request is then performed by a preformatted
|
125
|
+
# path.
|
126
|
+
def get_org_unit_descendants(org_unit_id, ou_type_id = 0)
|
127
|
+
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/#{org_unit_id}/descendants/"
|
128
|
+
path += "?ouTypeId=#{ou_type_id}" if ou_type_id != 0
|
129
|
+
_get(path)
|
130
|
+
# return JSON array of OrgUnit data blocks
|
184
131
|
end
|
185
132
|
|
186
|
-
#
|
187
|
-
#
|
188
|
-
|
189
|
-
|
190
|
-
|
133
|
+
# gets a paged result of the org unit's descendants. The descendants are
|
134
|
+
# first referenced by a preformatted path; then if there is a defined bookmark,
|
135
|
+
# the bookmark parameter is appended to the path.
|
136
|
+
#
|
137
|
+
# return: JSON array of org unit descendants (paged)
|
138
|
+
def get_paged_org_unit_descendants(org_unit_id, ou_type_id = 0, bookmark = '')
|
139
|
+
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/#{org_unit_id}/descendants/paged/"
|
140
|
+
path += "?ouTypeId=#{ou_type_id}" if ou_type_id != 0
|
141
|
+
path += "?bookmark=#{bookmark}" if bookmark != ''
|
142
|
+
_get(path)
|
143
|
+
# return paged json of org_unit descendants
|
191
144
|
end
|
192
145
|
|
193
|
-
#
|
194
|
-
#
|
195
|
-
#
|
196
|
-
def
|
197
|
-
path = "/d2l/api/lp/#{$lp_ver}/orgstructure
|
198
|
-
|
146
|
+
# gets all parents of a particular org unit, as referenced by the
|
147
|
+
# "org_unit_id" argument. A get request is then performed by a preformatted
|
148
|
+
# path.
|
149
|
+
def get_org_unit_parents(org_unit_id, ou_type_id = 0)
|
150
|
+
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/#{org_unit_id}/parents/"
|
151
|
+
path += "?ouTypeId=#{ou_type_id}" if ou_type_id != 0
|
152
|
+
_get(path)
|
153
|
+
# return json of org_unit parents
|
199
154
|
end
|
200
155
|
|
201
156
|
# Checks whether the created org unit data conforms to the valence api for the
|
@@ -234,6 +189,28 @@ def create_custom_org_unit(org_unit_data)
|
|
234
189
|
# returns: OrgUnit JSON data block
|
235
190
|
end
|
236
191
|
|
192
|
+
# Adds a child to the org unit by using org_unit_id to reference the soon-to-be
|
193
|
+
# parent of the child_org_unit and referencing the soon-to-be child through the
|
194
|
+
# child_org_unit_id argument. Then, a path is created to reference the children
|
195
|
+
# of the soon-to-be parent and executing a post http method that adds the child.
|
196
|
+
#
|
197
|
+
# TL;DR, this adds a child org_unit to the children of an org_unit.
|
198
|
+
def add_child_org_unit(org_unit_id, child_org_unit_id)
|
199
|
+
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/#{org_unit_id}/children/"
|
200
|
+
_post(path, child_org_unit_id)
|
201
|
+
end
|
202
|
+
|
203
|
+
# performs a post method to assign a parent to a particular child org unit.
|
204
|
+
# This is done by first referencing all the parents of the +child_ou+ and then
|
205
|
+
# POSTing the id of another org unit that is to be added to the parents.
|
206
|
+
def add_parent_to_org_unit(parent_ou_id, child_ou_id)
|
207
|
+
# Must follow structure of data
|
208
|
+
# (course <-- semester <== org -->custom dept--> dept -->templates--> courses)
|
209
|
+
# Refer to valence documentation for further structural understanding..
|
210
|
+
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/#{child_ou_id}/parents/"
|
211
|
+
_post(path, parent_ou_id)
|
212
|
+
end
|
213
|
+
|
237
214
|
# Checks whether the updated org unit data conforms to the valence api for the
|
238
215
|
# org unit data JSON object. If it does conform, then nothing happens and it
|
239
216
|
# simply returns true. If it does not conform, then the JSON validator raises
|
@@ -286,23 +263,103 @@ def update_org_unit(org_unit_id, org_unit_data)
|
|
286
263
|
# returns: OrgUnitProperties JSON data block
|
287
264
|
end
|
288
265
|
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
266
|
+
|
267
|
+
########################
|
268
|
+
# COLOUR SCHEMES:#######
|
269
|
+
########################
|
270
|
+
|
271
|
+
# REVIEW: Retrieve the colour scheme for an org unit.
|
272
|
+
# RETURNS: ColourScheme JSON data block containing the org unit’s current colour scheme.
|
273
|
+
def get_org_unit_color_scheme(org_unit_id)
|
274
|
+
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/#{org_unit_id}/colours"
|
275
|
+
# RETURNS: ColourScheme JSON data block containing the org unit’s current colour scheme.
|
295
276
|
end
|
296
277
|
|
297
|
-
#
|
298
|
-
#
|
278
|
+
# TODO: Set a new colour scheme for an org unit.
|
279
|
+
# INPUT: JSON PARAM of type +colourScheme+ (OrgUnitEditor.ColourScheme)
|
280
|
+
# RETURNS: ColourScheme JSON data block containing the org unit’s new colour scheme.
|
281
|
+
def set_new_org_unit_color_scheme(org_unit_id, colour_scheme)
|
282
|
+
# PUT /d2l/api/lp/(version)/orgstructure/(orgUnitId)/colours
|
283
|
+
# RETURNS: ColourScheme JSON data block containing the org unit’s new colour scheme.
|
284
|
+
end
|
285
|
+
|
286
|
+
########################
|
287
|
+
# RECYCLE BIN:##########
|
288
|
+
########################
|
289
|
+
|
290
|
+
# deletes a particular org unit. This is done via referencing the org unit by
|
291
|
+
# its id and performing a delete method.
|
292
|
+
def delete_recycled_org_unit(org_unit_id)
|
293
|
+
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/recyclebin/#{org_unit_id}"
|
294
|
+
_delete(path)
|
295
|
+
end
|
296
|
+
|
297
|
+
# Retrieves a paged result of all recycled org units. Thus, only the first 100
|
298
|
+
# are retrieved since the first referenced org unit. As such, if the bookmark is
|
299
|
+
# not defined, then it only retrieves the first 100.
|
299
300
|
#
|
300
|
-
# return: JSON array of
|
301
|
-
def
|
302
|
-
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/
|
301
|
+
# return: JSON array of recycled org units.
|
302
|
+
def get_recycled_org_units(bookmark = '')
|
303
|
+
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/recyclebin/"
|
304
|
+
path += "?bookmark=#{bookmark}" if bookmark != ''
|
305
|
+
_get(path)
|
306
|
+
# GETS ONLY FIRST 100
|
307
|
+
end
|
308
|
+
|
309
|
+
# An org unit is recycled by executing a POST http method and recycling it. The
|
310
|
+
# path for the recycling is created using the org_unit_id argument and then the
|
311
|
+
# post method is executed afterwards.
|
312
|
+
def recycle_org_unit(org_unit_id)
|
313
|
+
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/recyclebin/#{org_unit_id}/recycle"
|
314
|
+
_post(path, {})
|
315
|
+
end
|
316
|
+
|
317
|
+
# Restores a recycled org unit. This is done by referencing the org unit by its
|
318
|
+
# id in the recycling bin and then appending '/restore'. This is then used in a
|
319
|
+
# post method that performs the restoring process.
|
320
|
+
def restore_recycled_org_unit(org_unit_id)
|
321
|
+
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/recyclebin/#{org_unit_id}/restore"
|
322
|
+
_post(path, {})
|
323
|
+
end
|
324
|
+
|
325
|
+
########################
|
326
|
+
# TYPES:################
|
327
|
+
########################
|
328
|
+
|
329
|
+
# Delete a particular org unit type
|
330
|
+
def delete_outype(outype_id)
|
331
|
+
path = "/d2l/api/lp/#{$lp_ver}/outypes/#{outype_id}"
|
332
|
+
_delete(path)
|
333
|
+
end
|
334
|
+
|
335
|
+
# retrieves all outypes that are known and visible. This is returned as a JSON
|
336
|
+
# array of orgunittype data blocks.
|
337
|
+
def get_all_outypes
|
338
|
+
path = "/d2l/api/lp/#{$lp_ver}/outypes/"
|
339
|
+
_get(path)
|
340
|
+
end
|
341
|
+
|
342
|
+
# This retrieves information about a particular org unit type, referenced via
|
343
|
+
# the outype_id argument. This is then returned as a JSON object.
|
344
|
+
def get_outype(outype_id)
|
345
|
+
path = "/d2l/api/lp/#{$lp_ver}/outypes/#{outype_id}"
|
303
346
|
_get(path)
|
304
347
|
end
|
305
348
|
|
349
|
+
# retrieve org unit type of department org units
|
350
|
+
def get_department_outype
|
351
|
+
path = "/d2l/api/lp/#{$lp_ver}/outypes/department"
|
352
|
+
_get(path)
|
353
|
+
# returns OrgUnitType JSON data block
|
354
|
+
end
|
355
|
+
|
356
|
+
# retrieve org unit type of semester org units
|
357
|
+
def get_semester_outype
|
358
|
+
path = "/d2l/api/lp/#{$lp_ver}/outypes/semester"
|
359
|
+
_get(path)
|
360
|
+
# returns OrgUnitType JSON data block
|
361
|
+
end
|
362
|
+
|
306
363
|
def check_create_org_unit_type_data_validity(org_unit_type_data)
|
307
364
|
schema = {
|
308
365
|
'type' => 'object',
|
@@ -332,20 +389,7 @@ def create_custom_outype(create_org_unit_type_data)
|
|
332
389
|
# returns OrgUnitType JSON data block
|
333
390
|
end
|
334
391
|
|
335
|
-
#
|
336
|
-
# the outype_id argument. This is then returned as a JSON object.
|
337
|
-
def get_outype(outype_id)
|
338
|
-
path = "/d2l/api/lp/#{$lp_ver}/outypes/#{outype_id}"
|
339
|
-
_get(path)
|
340
|
-
end
|
341
|
-
|
342
|
-
# retrieves all outypes that are known and visible. This is returned as a JSON
|
343
|
-
# array of orgunittype data blocks.
|
344
|
-
def get_all_outypes
|
345
|
-
path = "/d2l/api/lp/#{$lp_ver}/outypes/"
|
346
|
-
_get(path)
|
347
|
-
end
|
348
|
-
|
392
|
+
# NOTE: You cannot update the org unit codes if they are default ouTypes
|
349
393
|
# update a particular org unit type (with POST for some reason)
|
350
394
|
def update_outype(outype_id, create_org_unit_type_data)
|
351
395
|
payload =
|
@@ -362,22 +406,16 @@ def update_outype(outype_id, create_org_unit_type_data)
|
|
362
406
|
# returns OrgUnitType JSON data block
|
363
407
|
end
|
364
408
|
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
_delete(path)
|
369
|
-
end
|
409
|
+
###########################
|
410
|
+
# Additional Functions:####
|
411
|
+
###########################
|
370
412
|
|
371
|
-
# retrieve org unit type of department org units
|
372
|
-
def get_department_outype
|
373
|
-
path = "/d2l/api/lp/#{$lp_ver}/outypes/department"
|
374
|
-
_get(path)
|
375
|
-
# returns OrgUnitType JSON data block
|
376
|
-
end
|
377
413
|
|
378
|
-
#
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
414
|
+
# Retrieves the org units that are a particular id. This is done by obtaining
|
415
|
+
# all of the children of the organization and then filtering by this id.
|
416
|
+
#
|
417
|
+
# return: JSON array of all org units of an outype.
|
418
|
+
def get_all_org_units_by_type_id(outype_id)
|
419
|
+
path = "/d2l/api/lp/#{$lp_ver}/orgstructure/6606/children/?ouTypeId=#{outype_id}"
|
420
|
+
_get(path)
|
383
421
|
end
|