Class: CanvasOauth::CanvasApi
- Inherits:
-
Object
- Object
- CanvasOauth::CanvasApi
show all
- Includes:
- HTTParty
- Defined in:
- lib/canvas_oauth/canvas_api.rb
Defined Under Namespace
Classes: Authenticate, Unauthorized
Constant Summary
collapse
- PER_PAGE =
50
Instance Attribute Summary collapse
Instance Method Summary
collapse
-
#auth_url(redirect_uri, oauth2_state) ⇒ Object
-
#authenticated_get(*params) ⇒ Object
-
#authenticated_post(*params) ⇒ Object
-
#authenticated_put(*params) ⇒ Object
-
#authenticated_request(method, *params) ⇒ Object
-
#course_account_id(course_id, params = {}) ⇒ Object
-
#course_root_account_id(course_id, params = {}) ⇒ Object
-
#create_assignment(course_id, params = {}) ⇒ Object
-
#get_access_token(code) ⇒ Object
-
#get_access_token_by_refresh_token ⇒ Object
-
#get_account(account_id, params = {}) ⇒ Object
-
#get_account_courses(account_id, params = {}) ⇒ Object
-
#get_account_sub_accounts(account_id, params = {}) ⇒ Object
-
#get_account_users(account_id, params = {}) ⇒ Object
-
#get_accounts_provisioning_report(account_id, params = {}) ⇒ Object
-
#get_all_course_users(course_id, params = {}) ⇒ Object
-
#get_assignment(course_id, assignment_id, params = {}) ⇒ Object
-
#get_assignments(course_id, params = {}) ⇒ Object
-
#get_canvas_user_profile(params = {}) ⇒ Object
get_canvas_user_profile get_course_active_pages update_external_tool_nav get_school_details get_school_grades get_school_grade get_school_class_rooms get_school_class_room get_school_subjects get_school_subject get_students_by_grade get_students_by_class_room.
-
#get_course(course_id, params = {}) ⇒ Object
-
#get_course_active_pages(course_id, publish = nil, params = {}) ⇒ Object
-
#get_course_active_students(course_id, params = {}) ⇒ Object
-
#get_course_students(course_id, params = {}) ⇒ Object
-
#get_course_teachers_and_tas(course_id, params = {}) ⇒ Object
-
#get_course_users(course_id, params = {}) ⇒ Object
-
#get_courses(params = {}) ⇒ Object
-
#get_file(file_id, params = {}) ⇒ Object
-
#get_report(account_id, report_type, params = {}) ⇒ Object
get_report get_file get_accounts_provisioning_report get_courses get_account get_account_sub_accounts get_account_courses get_account_users get_course get_section_enrollments get_user_enrollments get_course_users get_all_course_users get_course_teachers_and_tas get_course_students get_course_active_students get_section get_sections get_assignments get_assignment get_user_profile create_assignment update_assignment grade_assignment get_submission course_account_id root_account_id course_root_account_id.
-
#get_school_class_room(class_room_id, account_id = @canvas_root_account_id, params = {}) ⇒ Object
-
#get_school_class_rooms(account_id = @canvas_root_account_id, params = {}) ⇒ Object
-
#get_school_details(account_id = @canvas_root_account_id, params = {}) ⇒ Object
-
#get_school_grade(grade_id, account_id = @canvas_root_account_id, params = {}) ⇒ Object
-
#get_school_grades(account_id = @canvas_root_account_id, params = {}) ⇒ Object
-
#get_school_subject(subject_id, account_id = @canvas_root_account_id, params = {}) ⇒ Object
-
#get_school_subjects(account_id = @canvas_root_account_id, params = {}) ⇒ Object
-
#get_section(section_id, params = {}) ⇒ Object
-
#get_section_enrollments(section_id, params = {}) ⇒ Object
-
#get_sections(course_id, params = {}) ⇒ Object
-
#get_students_by_class_room(class_room_id, account_id = @canvas_root_account_id, params = {}) ⇒ Object
-
#get_students_by_grade(grade_id, account_id = @canvas_root_account_id, params = {}) ⇒ Object
-
#get_submission(course_id, assignment_id, user_id, params = {}) ⇒ Object
-
#get_user_enrollments(user_id, params = {}) ⇒ Object
-
#get_user_profile(user_id, params = {}) ⇒ Object
-
#grade_assignment(course_id, assignment_id, user_id, params = {}) ⇒ Object
-
#hash_csv(csv_string) ⇒ Object
Needs to be refactored to somewhere more generic.
-
#hex_sis_id(name, value) ⇒ Object
-
#initialize(id, canvas_url, canvas_user_id, canvas_root_account_id, token, refresh_token, key, secret) ⇒ CanvasApi
constructor
A new instance of CanvasApi.
-
#paginated_get(url, params = {}) ⇒ Object
-
#qalam_auth_url(qalam_url, redirect_uri, oauth2_state) ⇒ Object
-
#root_account_id(account_id, params = {}) ⇒ Object
-
#update_assignment(course_id, assignment_id, params = {}) ⇒ Object
-
#update_external_tool_nav(external_tool_url, tool_id, publish, type, account_id = @canvas_root_account_id, params = {}) ⇒ Object
-
#valid_page?(page) ⇒ Boolean
Constructor Details
#initialize(id, canvas_url, canvas_user_id, canvas_root_account_id, token, refresh_token, key, secret) ⇒ CanvasApi
Returns a new instance of CanvasApi.
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/canvas_oauth/canvas_api.rb', line 9
def initialize(id, canvas_url, canvas_user_id, canvas_root_account_id, token, refresh_token, key, secret)
unless [key, secret].all?(&:present?)
raise "Invalid Qalam oAuth configuration"
end
self.id = id
self.refresh_token = refresh_token
self.canvas_url = canvas_url
self.canvas_user_id = canvas_user_id
self.canvas_root_account_id = canvas_root_account_id
self.token = token
self.key = key
self.secret = secret
end
|
Instance Attribute Details
#canvas_root_account_id ⇒ Object
Returns the value of attribute canvas_root_account_id.
7
8
9
|
# File 'lib/canvas_oauth/canvas_api.rb', line 7
def canvas_root_account_id
@canvas_root_account_id
end
|
#canvas_url ⇒ Object
Returns the value of attribute canvas_url.
7
8
9
|
# File 'lib/canvas_oauth/canvas_api.rb', line 7
def canvas_url
@canvas_url
end
|
#canvas_user_id ⇒ Object
Returns the value of attribute canvas_user_id.
7
8
9
|
# File 'lib/canvas_oauth/canvas_api.rb', line 7
def canvas_user_id
@canvas_user_id
end
|
#id ⇒ Object
Returns the value of attribute id.
7
8
9
|
# File 'lib/canvas_oauth/canvas_api.rb', line 7
def id
@id
end
|
#key ⇒ Object
Returns the value of attribute key.
6
7
8
|
# File 'lib/canvas_oauth/canvas_api.rb', line 6
def key
@key
end
|
#refresh_token ⇒ Object
Returns the value of attribute refresh_token.
6
7
8
|
# File 'lib/canvas_oauth/canvas_api.rb', line 6
def refresh_token
@refresh_token
end
|
#secret ⇒ Object
Returns the value of attribute secret.
6
7
8
|
# File 'lib/canvas_oauth/canvas_api.rb', line 6
def secret
@secret
end
|
#token ⇒ Object
Returns the value of attribute token.
6
7
8
|
# File 'lib/canvas_oauth/canvas_api.rb', line 6
def token
@token
end
|
Instance Method Details
#auth_url(redirect_uri, oauth2_state) ⇒ Object
59
60
61
|
# File 'lib/canvas_oauth/canvas_api.rb', line 59
def auth_url(redirect_uri, oauth2_state)
"#{canvas_url}/login/oauth2/auth?client_id=#{key}&response_type=code&state=#{oauth2_state}&redirect_uri=#{redirect_uri}"
end
|
#authenticated_get(*params) ⇒ Object
96
97
98
|
# File 'lib/canvas_oauth/canvas_api.rb', line 96
def authenticated_get(*params)
authenticated_request(:get, *params)
end
|
#authenticated_post(*params) ⇒ Object
100
101
102
|
# File 'lib/canvas_oauth/canvas_api.rb', line 100
def authenticated_post(*params)
authenticated_request(:post, *params)
end
|
#authenticated_put(*params) ⇒ Object
104
105
106
|
# File 'lib/canvas_oauth/canvas_api.rb', line 104
def authenticated_put(*params)
authenticated_request(:put, *params)
end
|
#authenticated_request(method, *params) ⇒ Object
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/canvas_oauth/canvas_api.rb', line 25
def authenticated_request(method, *params)
params << {} if params.size == 1
params.last[:headers] ||= {}
params.last[:headers]['Authorization'] = "Bearer #{token}"
start = Time.now
response = self.class.send(method, *params)
Rails.logger.info {
stop = Time.now
elapsed = ((stop - start) * 1000).round(2)
params.last[:headers].reject! { |k| k == 'Authorization' }
"API call (#{elapsed}ms): #{method} #{params.inspect}"
}
if response && response.unauthorized?
if refresh_token
get_access_token_by_refresh_token
authenticated_request(method, *params)
else
if response.['WWW-Authenticate'].present?
raise CanvasApi::Authenticate
else
raise CanvasApi::Unauthorized
end
end
else
return response
end
end
|
#course_account_id(course_id, params = {}) ⇒ Object
321
322
323
324
|
# File 'lib/canvas_oauth/canvas_api.rb', line 321
def course_account_id(course_id, params={})
course = get_course(course_id)
course['account_id'] if course
end
|
#course_root_account_id(course_id, params = {}) ⇒ Object
334
335
336
|
# File 'lib/canvas_oauth/canvas_api.rb', line 334
def course_root_account_id(course_id, params={})
root_account_id(course_account_id(course_id))
end
|
#create_assignment(course_id, params = {}) ⇒ Object
305
306
307
|
# File 'lib/canvas_oauth/canvas_api.rb', line 305
def create_assignment(course_id, params={})
authenticated_post "/api/v1/courses/#{course_id}/assignments", { body: { assignment: params } }
end
|
#get_access_token(code) ⇒ Object
67
68
69
70
71
72
73
74
75
76
77
78
79
|
# File 'lib/canvas_oauth/canvas_api.rb', line 67
def get_access_token(code)
params = {
body: {
client_id: key,
client_secret: secret,
code: code
}
}
response = self.class.post '/login/oauth2/token', params
self.refresh_token = response['refresh_token']
self.token = response['access_token']
end
|
#get_access_token_by_refresh_token ⇒ Object
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/canvas_oauth/canvas_api.rb', line 81
def get_access_token_by_refresh_token
params = {
body: {
grant_type: 'refresh_token',
client_id: key,
client_secret: secret,
refresh_token: refresh_token
}
}
response = self.class.post '/login/oauth2/token', params
self.token = response['access_token']
CanvasOauth::Authorization.update_token(refresh_token, token)
end
|
#get_account(account_id, params = {}) ⇒ Object
237
238
239
|
# File 'lib/canvas_oauth/canvas_api.rb', line 237
def get_account(account_id, params={})
authenticated_get "/api/v1/accounts/#{account_id}"
end
|
#get_account_courses(account_id, params = {}) ⇒ Object
245
246
247
|
# File 'lib/canvas_oauth/canvas_api.rb', line 245
def get_account_courses(account_id, params={})
paginated_get "/api/v1/accounts/#{account_id}/courses"
end
|
#get_account_sub_accounts(account_id, params = {}) ⇒ Object
241
242
243
|
# File 'lib/canvas_oauth/canvas_api.rb', line 241
def get_account_sub_accounts(account_id, params={})
paginated_get "/api/v1/accounts/#{account_id}/sub_accounts", { query: { :recursive => true } }
end
|
#get_account_users(account_id, params = {}) ⇒ Object
249
250
251
|
# File 'lib/canvas_oauth/canvas_api.rb', line 249
def get_account_users(account_id, params={})
paginated_get "/api/v1/accounts/#{account_id}/users"
end
|
#get_accounts_provisioning_report(account_id, params = {}) ⇒ Object
229
230
231
|
# File 'lib/canvas_oauth/canvas_api.rb', line 229
def get_accounts_provisioning_report(account_id, params={})
get_report(account_id, :provisioning_csv, 'parameters[accounts]' => true)
end
|
#get_all_course_users(course_id, params = {}) ⇒ Object
269
270
271
|
# File 'lib/canvas_oauth/canvas_api.rb', line 269
def get_all_course_users(course_id, params={})
paginated_get "/api/v1/courses/#{course_id}/users", { query: {enrollment_state: ["active","invited","rejected","completed","inactive"] } }
end
|
#get_assignment(course_id, assignment_id, params = {}) ⇒ Object
297
298
299
|
# File 'lib/canvas_oauth/canvas_api.rb', line 297
def get_assignment(course_id, assignment_id, params={})
authenticated_get "/api/v1/courses/#{course_id}/assignments/#{assignment_id}"
end
|
#get_assignments(course_id, params = {}) ⇒ Object
293
294
295
|
# File 'lib/canvas_oauth/canvas_api.rb', line 293
def get_assignments(course_id, params={})
paginated_get "/api/v1/courses/#{course_id}/assignments"
end
|
#get_canvas_user_profile(params = {}) ⇒ Object
get_canvas_user_profile get_course_active_pages update_external_tool_nav get_school_details get_school_grades get_school_grade get_school_class_rooms get_school_class_room get_school_subjects get_school_subject get_students_by_grade get_students_by_class_room
353
354
355
|
# File 'lib/canvas_oauth/canvas_api.rb', line 353
def get_canvas_user_profile(params={})
authenticated_get "/api/v1/users/#{canvas_user_id}/profile"
end
|
#get_course(course_id, params = {}) ⇒ Object
253
254
255
|
# File 'lib/canvas_oauth/canvas_api.rb', line 253
def get_course(course_id, params={})
authenticated_get "/api/v1/courses/#{course_id}"
end
|
#get_course_active_pages(course_id, publish = nil, params = {}) ⇒ Object
357
358
359
360
361
362
363
|
# File 'lib/canvas_oauth/canvas_api.rb', line 357
def get_course_active_pages(course_id, publish=nil, params={})
unless publish.nil?
paginated_get "/api/v1/courses/#{course_id}/pages?published=#{publish}&sort=created_at&order=desc", params
else
paginated_get "/api/v1/courses/#{course_id}/pages?sort=created_at&order=desc", params
end
end
|
#get_course_active_students(course_id, params = {}) ⇒ Object
281
282
283
|
# File 'lib/canvas_oauth/canvas_api.rb', line 281
def get_course_active_students(course_id, params={})
paginated_get "/api/v1/courses/#{course_id}/active_users"
end
|
#get_course_students(course_id, params = {}) ⇒ Object
277
278
279
|
# File 'lib/canvas_oauth/canvas_api.rb', line 277
def get_course_students(course_id, params={})
paginated_get "/api/v1/courses/#{course_id}/students"
end
|
#get_course_teachers_and_tas(course_id, params = {}) ⇒ Object
273
274
275
|
# File 'lib/canvas_oauth/canvas_api.rb', line 273
def get_course_teachers_and_tas(course_id, params={})
paginated_get "/api/v1/courses/#{course_id}/users", { query: { enrollment_type: ['teacher', 'ta'] } }
end
|
#get_course_users(course_id, params = {}) ⇒ Object
265
266
267
|
# File 'lib/canvas_oauth/canvas_api.rb', line 265
def get_course_users(course_id, params={})
paginated_get "/api/v1/courses/#{course_id}/users"
end
|
#get_courses(params = {}) ⇒ Object
233
234
235
|
# File 'lib/canvas_oauth/canvas_api.rb', line 233
def get_courses(params={})
paginated_get "/api/v1/courses"
end
|
#get_file(file_id, params = {}) ⇒ Object
225
226
227
|
# File 'lib/canvas_oauth/canvas_api.rb', line 225
def get_file(file_id, params={})
authenticated_get "/api/v1/files/#{file_id}"
end
|
#get_report(account_id, report_type, params = {}) ⇒ Object
get_report get_file get_accounts_provisioning_report get_courses get_account get_account_sub_accounts get_account_courses get_account_users get_course get_section_enrollments get_user_enrollments get_course_users get_all_course_users get_course_teachers_and_tas get_course_students get_course_active_students get_section get_sections get_assignments get_assignment get_user_profile create_assignment update_assignment grade_assignment get_submission course_account_id root_account_id course_root_account_id
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
|
# File 'lib/canvas_oauth/canvas_api.rb', line 208
def get_report(account_id, report_type, params={})
report = authenticated_post("/api/v1/accounts/#{account_id}/reports/#{report_type}", { body: params })
report = authenticated_get "/api/v1/accounts/#{account_id}/reports/#{report_type}/#{report['id']}"
while (report['status'] == 'created' || report['status'] == 'running')
sleep(4)
report = authenticated_get "/api/v1/accounts/#{account_id}/reports/#{report_type}/#{report['id']}"
end
if report['status'] == 'complete'
file_id = report['file_url'].match(/files\/([0-9]+)\/download/)[1]
file = get_file(file_id)
return hash_csv(self.class.get(file['url'], limit: 15, parser: DefaultUTF8Parser).parsed_response)
else
return report
end
end
|
#get_school_class_room(class_room_id, account_id = @canvas_root_account_id, params = {}) ⇒ Object
407
408
409
410
|
# File 'lib/canvas_oauth/canvas_api.rb', line 407
def get_school_class_room(class_room_id, account_id=@canvas_root_account_id, params={})
account_id ||= @canvas_root_account_id
authenticated_get "/api/v1/accounts/#{account_id}/school_class_rooms/#{class_room_id}", params
end
|
#get_school_class_rooms(account_id = @canvas_root_account_id, params = {}) ⇒ Object
402
403
404
405
|
# File 'lib/canvas_oauth/canvas_api.rb', line 402
def get_school_class_rooms(account_id=@canvas_root_account_id, params={})
account_id ||= @canvas_root_account_id
paginated_get "/api/v1/accounts/#{account_id}/school_class_rooms", params
end
|
#get_school_details(account_id = @canvas_root_account_id, params = {}) ⇒ Object
377
378
379
380
|
# File 'lib/canvas_oauth/canvas_api.rb', line 377
def get_school_details(account_id=@canvas_root_account_id, params={})
account_id ||= @canvas_root_account_id
authenticated_get "/api/v1/accounts/#{account_id}/school_details"
end
|
#get_school_grade(grade_id, account_id = @canvas_root_account_id, params = {}) ⇒ Object
387
388
389
390
|
# File 'lib/canvas_oauth/canvas_api.rb', line 387
def get_school_grade(grade_id, account_id=@canvas_root_account_id, params={})
account_id ||= @canvas_root_account_id
authenticated_get "/api/v1/accounts/#{account_id}/school_grades/#{grade_id}", params
end
|
#get_school_grades(account_id = @canvas_root_account_id, params = {}) ⇒ Object
382
383
384
385
|
# File 'lib/canvas_oauth/canvas_api.rb', line 382
def get_school_grades(account_id=@canvas_root_account_id, params={})
account_id ||= @canvas_root_account_id
paginated_get "/api/v1/accounts/#{account_id}/school_grades", params
end
|
#get_school_subject(subject_id, account_id = @canvas_root_account_id, params = {}) ⇒ Object
397
398
399
400
|
# File 'lib/canvas_oauth/canvas_api.rb', line 397
def get_school_subject(subject_id, account_id=@canvas_root_account_id, params={})
account_id ||= @canvas_root_account_id
authenticated_get "/api/v1/accounts/#{account_id}/school_subjects/#{subject_id}", params
end
|
#get_school_subjects(account_id = @canvas_root_account_id, params = {}) ⇒ Object
392
393
394
395
|
# File 'lib/canvas_oauth/canvas_api.rb', line 392
def get_school_subjects(account_id=@canvas_root_account_id, params={})
account_id ||= @canvas_root_account_id
paginated_get "/api/v1/accounts/#{account_id}/school_subjects", params
end
|
#get_section(section_id, params = {}) ⇒ Object
285
286
287
|
# File 'lib/canvas_oauth/canvas_api.rb', line 285
def get_section(section_id, params={})
authenticated_get "/api/v1/sections/#{section_id}"
end
|
#get_section_enrollments(section_id, params = {}) ⇒ Object
257
258
259
|
# File 'lib/canvas_oauth/canvas_api.rb', line 257
def get_section_enrollments(section_id, params={})
paginated_get "/api/v1/sections/#{section_id}/enrollments"
end
|
#get_sections(course_id, params = {}) ⇒ Object
289
290
291
|
# File 'lib/canvas_oauth/canvas_api.rb', line 289
def get_sections(course_id, params={})
paginated_get "/api/v1/courses/#{course_id}/sections", { query: { :include => ['students', 'avatar_url', 'enrollments'] } }
end
|
#get_students_by_class_room(class_room_id, account_id = @canvas_root_account_id, params = {}) ⇒ Object
417
418
419
420
|
# File 'lib/canvas_oauth/canvas_api.rb', line 417
def get_students_by_class_room(class_room_id, account_id=@canvas_root_account_id, params={})
account_id ||= @canvas_root_account_id
paginated_get "/api/v1/accounts/#{account_id}/class_room_students/#{class_room_id}", params
end
|
#get_students_by_grade(grade_id, account_id = @canvas_root_account_id, params = {}) ⇒ Object
412
413
414
415
|
# File 'lib/canvas_oauth/canvas_api.rb', line 412
def get_students_by_grade(grade_id, account_id=@canvas_root_account_id, params={})
account_id ||= @canvas_root_account_id
paginated_get "/api/v1/accounts/#{account_id}/grade_students/#{grade_id}", params
end
|
#get_submission(course_id, assignment_id, user_id, params = {}) ⇒ Object
317
318
319
|
# File 'lib/canvas_oauth/canvas_api.rb', line 317
def get_submission(course_id, assignment_id, user_id, params={})
authenticated_get "/api/v1/courses/#{course_id}/assignments/#{assignment_id}/submissions/#{user_id}"
end
|
#get_user_enrollments(user_id, params = {}) ⇒ Object
261
262
263
|
# File 'lib/canvas_oauth/canvas_api.rb', line 261
def get_user_enrollments(user_id, params={})
paginated_get "/api/v1/users/#{user_id}/enrollments"
end
|
#get_user_profile(user_id, params = {}) ⇒ Object
301
302
303
|
# File 'lib/canvas_oauth/canvas_api.rb', line 301
def get_user_profile(user_id, params={})
authenticated_get "/api/v1/users/#{user_id}/profile"
end
|
#grade_assignment(course_id, assignment_id, user_id, params = {}) ⇒ Object
313
314
315
|
# File 'lib/canvas_oauth/canvas_api.rb', line 313
def grade_assignment(course_id, assignment_id, user_id, params={})
authenticated_put "/api/v1/courses/#{course_id}/assignments/#{assignment_id}/submissions/#{user_id}", { body: params }
end
|
#hash_csv(csv_string) ⇒ Object
Needs to be refactored to somewhere more generic
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
# File 'lib/canvas_oauth/canvas_api.rb', line 159
def hash_csv(csv_string)
require 'csv'
csv = csv_string.is_a?(String) ? CSV.parse(csv_string) : csv_string
= csv.shift
output = []
csv.each do |row|
hash = {}
.each do ||
hash[] = row.shift.to_s
end
output << hash
end
return output
end
|
#hex_sis_id(name, value) ⇒ Object
149
150
151
152
|
# File 'lib/canvas_oauth/canvas_api.rb', line 149
def hex_sis_id(name, value)
hex = value.unpack("H*")[0]
return "hex:#{name}:#{hex}"
end
|
#paginated_get(url, params = {}) ⇒ Object
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
# File 'lib/canvas_oauth/canvas_api.rb', line 108
def paginated_get(url, params={})
params[:query] ||= {}
params[:query][:per_page] ||= PER_PAGE
params[:query][:page] ||= 1
all_pages = []
if params[:current_page]
current_page = authenticated_get(url, params)
all_pages.concat(current_page) if valid_page?(current_page)
else
while url && current_page = authenticated_get(url, params) do
all_pages.concat(current_page) if valid_page?(current_page)
links = LinkHeader.parse(current_page.['link'])
url = links.find_link(["rel", "next"]).try(:href)
params[:query] = nil if params[:query]
end
end
all_pages
end
|
#qalam_auth_url(qalam_url, redirect_uri, oauth2_state) ⇒ Object
63
64
65
|
# File 'lib/canvas_oauth/canvas_api.rb', line 63
def qalam_auth_url(qalam_url, redirect_uri, oauth2_state)
"#{qalam_url}/login/oauth2/auth?client_id=#{key}&response_type=code&state=#{oauth2_state}&redirect_uri=#{redirect_uri}"
end
|
#root_account_id(account_id, params = {}) ⇒ Object
326
327
328
329
330
331
332
|
# File 'lib/canvas_oauth/canvas_api.rb', line 326
def root_account_id(account_id, params={})
if account_id && account = get_account(account_id)
root_id = account['root_account_id']
end
root_id || account_id
end
|
#update_assignment(course_id, assignment_id, params = {}) ⇒ Object
309
310
311
|
# File 'lib/canvas_oauth/canvas_api.rb', line 309
def update_assignment(course_id, assignment_id, params={})
authenticated_put "/api/v1/courses/#{course_id}/assignments/#{assignment_id}", { body: { assignment: params } }
end
|
365
366
367
368
369
370
371
372
373
374
375
|
# File 'lib/canvas_oauth/canvas_api.rb', line 365
def update_external_tool_nav(external_tool_url, tool_id, publish, type, account_id=@canvas_root_account_id, params={})
account_id ||= @canvas_root_account_id
if type == 'account'
body = {"account_navigation"=>{"enabled"=>"#{publish}"},
"tool_id"=>tool_id, "external_tool_url"=>external_tool_url}
elsif type == 'course'
body = {"course_navigation"=>{"enabled"=>"#{publish}"},
"tool_id"=>tool_id, "external_tool_url"=>external_tool_url}
end
authenticated_put "/api/v1/accounts/#{account_id}/external_tools_url", { body: body } if body
end
|
#valid_page?(page) ⇒ Boolean
154
155
156
|
# File 'lib/canvas_oauth/canvas_api.rb', line 154
def valid_page?(page)
page && page.size > 0
end
|