lms-api 1.3.0 → 1.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/canvas_api/graphql_helpers.rb +0 -1
- data/lib/lms/canvas.rb +1 -2
- data/lib/lms/canvas_urls.rb +15 -9
- data/lib/lms/version.rb +1 -1
- data/lib/tasks/canvas_api.rake +9 -268
- metadata +1 -13
- data/lib/tasks/canvas_api/constant.erb +0 -10
- data/lib/tasks/canvas_api/constants.erb +0 -4
- data/lib/tasks/canvas_api/graphql_model.erb +0 -7
- data/lib/tasks/canvas_api/graphql_mutation.erb +0 -0
- data/lib/tasks/canvas_api/graphql_mutations.erb +0 -6
- data/lib/tasks/canvas_api/graphql_queries.erb +0 -7
- data/lib/tasks/canvas_api/graphql_query.erb +0 -7
- data/lib/tasks/canvas_api/graphql_types.erb +0 -64
- data/lib/tasks/canvas_api/js_url.erb +0 -1
- data/lib/tasks/canvas_api/js_urls.erb +0 -3
- data/lib/tasks/canvas_api/rb_url.erb +0 -1
- data/lib/tasks/canvas_api/rb_urls.erb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f134bb198925066aafd244adbe8b9458d38a902d
|
4
|
+
data.tar.gz: 918c848dd6f101ed790ad89f639d86898544957b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c83f5a8f9ce82dced14cd51bfe9e2d114fb25f32654ef4ce97b7ad027558fa90be54f634ed5fb2205bf1f5cc90998da1cbdd7ba00660a55f8aa65a9231aef6a0
|
7
|
+
data.tar.gz: c5dbb430ce2cdb6ab58b09ce37a36eb226f8c421b2c34f3a38e1f24b25db22c7e63848f07b354d177d13141254e6f77204485fa93f91b8c75427e9a566aefd24
|
data/lib/lms/canvas.rb
CHANGED
@@ -282,7 +282,6 @@ module LMS
|
|
282
282
|
end
|
283
283
|
|
284
284
|
def self.lms_url(type, params, payload = nil)
|
285
|
-
params = params.to_h
|
286
285
|
endpoint = LMS::CANVAS_URLs[type]
|
287
286
|
parameters = endpoint[:parameters]
|
288
287
|
|
@@ -312,7 +311,7 @@ module LMS
|
|
312
311
|
uri_proc = endpoint[:uri]
|
313
312
|
path_parameters = parameters.select { |p| p["paramType"] == "path" }.
|
314
313
|
map { |p| p["name"].to_sym }
|
315
|
-
args = params.slice(*path_parameters)
|
314
|
+
args = params.slice(*path_parameters).deep_symbolize_keys
|
316
315
|
uri = args.blank? ? uri_proc.call : uri_proc.call(**args)
|
317
316
|
|
318
317
|
# Handle scopes in the url. These API endpoints allow for additional path
|
data/lib/lms/canvas_urls.rb
CHANGED
@@ -15,7 +15,7 @@ module LMS
|
|
15
15
|
"LIST_ACCOUNTS_FOR_COURSE_ADMINS" => { uri: ->() { "course_accounts" }, method: "GET", parameters: [] },
|
16
16
|
"GET_SINGLE_ACCOUNT" => { uri: ->(id:) { "accounts/#{id}" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
17
17
|
"GET_SUB_ACCOUNTS_OF_ACCOUNT" => { uri: ->(account_id:) { "accounts/#{account_id}/sub_accounts" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"account_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"query", "name"=>"recursive", "type"=>"boolean", "format"=>nil, "required"=>false}] },
|
18
|
-
"LIST_ACTIVE_COURSES_IN_ACCOUNT" => { uri: ->(account_id:) { "accounts/#{account_id}/courses" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"account_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"query", "name"=>"with_enrollments", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"enrollment_type", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["teacher", "student", "ta", "observer", "designer"], "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"published", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"completed", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"by_teachers", "type"=>"array", "format"=>"int64", "required"=>false, "items"=>{"type"=>"integer"}}, {"paramType"=>"query", "name"=>"by_subaccounts", "type"=>"array", "format"=>"int64", "required"=>false, "items"=>{"type"=>"integer"}}, {"paramType"=>"query", "name"=>"hide_enrollmentless_courses", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"state", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["created", "claimed", "available", "completed", "deleted", "all"], "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"enrollment_term_id", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"query", "name"=>"search_term", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"include", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["syllabus_body", "term", "course_progress", "storage_quota_used_mb", "total_students", "teachers"], "items"=>{"type"=>"string"}}] },
|
18
|
+
"LIST_ACTIVE_COURSES_IN_ACCOUNT" => { uri: ->(account_id:) { "accounts/#{account_id}/courses" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"account_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"query", "name"=>"with_enrollments", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"enrollment_type", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["teacher", "student", "ta", "observer", "designer"], "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"published", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"completed", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"blueprint", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"blueprint_associated", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"by_teachers", "type"=>"array", "format"=>"int64", "required"=>false, "items"=>{"type"=>"integer"}}, {"paramType"=>"query", "name"=>"by_subaccounts", "type"=>"array", "format"=>"int64", "required"=>false, "items"=>{"type"=>"integer"}}, {"paramType"=>"query", "name"=>"hide_enrollmentless_courses", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"state", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["created", "claimed", "available", "completed", "deleted", "all"], "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"enrollment_term_id", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"query", "name"=>"search_term", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"include", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["syllabus_body", "term", "course_progress", "storage_quota_used_mb", "total_students", "teachers"], "items"=>{"type"=>"string"}}] },
|
19
19
|
"UPDATE_ACCOUNT" => { uri: ->(id:) { "accounts/#{id}" }, method: "PUT", parameters: [{"paramType"=>"path", "name"=>"id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"form", "name"=>"account[name]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"account[default_time_zone]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"account[default_storage_quota_mb]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"account[default_user_storage_quota_mb]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"account[default_group_storage_quota_mb]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"account[settings][restrict_student_past_view][value]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"account[settings][restrict_student_past_view][locked]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"account[settings][restrict_student_future_view][value]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"account[settings][restrict_student_future_view][locked]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"account[settings][lock_all_announcements][value]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"account[settings][lock_all_announcements][locked]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"account[settings][restrict_student_future_listing][value]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"account[settings][restrict_student_future_listing][locked]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"account[services]", "type"=>"Hash", "format"=>nil, "required"=>false}] },
|
20
20
|
"DELETE_USER_FROM_ROOT_ACCOUNT" => { uri: ->(account_id:, user_id:) { "accounts/#{account_id}/users/#{user_id}" }, method: "DELETE", parameters: [{"paramType"=>"path", "name"=>"account_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"user_id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
21
21
|
"CREATE_NEW_SUB_ACCOUNT" => { uri: ->(account_id:) { "accounts/#{account_id}/sub_accounts" }, method: "POST", parameters: [{"paramType"=>"path", "name"=>"account_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"form", "name"=>"account[name]", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"form", "name"=>"account[sis_account_id]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"account[default_storage_quota_mb]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"account[default_user_storage_quota_mb]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"account[default_group_storage_quota_mb]", "type"=>"integer", "format"=>"int64", "required"=>false}] },
|
@@ -61,7 +61,7 @@ module LMS
|
|
61
61
|
"LIST_ASSIGNMENTS" => { uri: ->(course_id:) { "courses/#{course_id}/assignments" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"query", "name"=>"include", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["submission", "assignment_visibility", "all_dates", "overrides", "observed_users"], "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"search_term", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"override_assignment_dates", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"needs_grading_count_by_section", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"bucket", "type"=>"string", "format"=>nil, "required"=>false, "enum"=>["past", "overdue", "undated", "ungraded", "unsubmitted", "upcoming", "future"]}, {"paramType"=>"query", "name"=>"assignment_ids", "type"=>"array", "format"=>nil, "required"=>false, "items"=>{"type"=>"string"}}] },
|
62
62
|
"LIST_ASSIGNMENTS_FOR_USER" => { uri: ->(user_id:, course_id:) { "users/#{user_id}/courses/#{course_id}/assignments" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"user_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
63
63
|
"GET_SINGLE_ASSIGNMENT" => { uri: ->(course_id:, id:) { "courses/#{course_id}/assignments/#{id}" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"query", "name"=>"include", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["submission", "assignment_visibility", "overrides", "observed_users"], "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"override_assignment_dates", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"needs_grading_count_by_section", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"all_dates", "type"=>"boolean", "format"=>nil, "required"=>false}] },
|
64
|
-
"CREATE_ASSIGNMENT" => { uri: ->(course_id:) { "courses/#{course_id}/assignments" }, method: "POST", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"form", "name"=>"assignment[name]", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"form", "name"=>"assignment[position]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"assignment[submission_types]", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["online_quiz", "none", "on_paper", "online_quiz", "discussion_topic", "external_tool", "online_upload", "online_text_entry", "online_url", "media_recording"], "items"=>{"type"=>"string"}}, {"paramType"=>"form", "name"=>"assignment[allowed_extensions]", "type"=>"array", "format"=>nil, "required"=>false, "items"=>{"type"=>"string"}}, {"paramType"=>"form", "name"=>"assignment[turnitin_enabled]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[vericite_enabled]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[turnitin_settings]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[integration_data]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[integration_id]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[peer_reviews]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[automatic_peer_reviews]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[notify_of_update]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[group_category_id]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"assignment[grade_group_students_individually]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"assignment[external_tool_tag_attributes]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[points_possible]", "type"=>"Float", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[grading_type]", "type"=>"string", "format"=>nil, "required"=>false, "enum"=>["pass_fail", "percent", "letter_grade", "gpa_scale", "points"]}, {"paramType"=>"form", "name"=>"assignment[due_at]", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[lock_at]", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[unlock_at]", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[description]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[assignment_group_id]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"assignment[muted]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[assignment_overrides]", "type"=>"array", "format"=>nil, "required"=>false, "items"=>{"$ref"=>"AssignmentOverride"}}, {"paramType"=>"form", "name"=>"assignment[only_visible_to_overrides]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[published]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[grading_standard_id]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"assignment[omit_from_final_grade]", "type"=>"boolean", "format"=>nil, "required"=>false}] },
|
64
|
+
"CREATE_ASSIGNMENT" => { uri: ->(course_id:) { "courses/#{course_id}/assignments" }, method: "POST", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"form", "name"=>"assignment[name]", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"form", "name"=>"assignment[position]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"assignment[submission_types]", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["online_quiz", "none", "on_paper", "online_quiz", "discussion_topic", "external_tool", "online_upload", "online_text_entry", "online_url", "media_recording"], "items"=>{"type"=>"string"}}, {"paramType"=>"form", "name"=>"assignment[allowed_extensions]", "type"=>"array", "format"=>nil, "required"=>false, "items"=>{"type"=>"string"}}, {"paramType"=>"form", "name"=>"assignment[turnitin_enabled]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[vericite_enabled]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[turnitin_settings]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[integration_data]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[integration_id]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[peer_reviews]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[automatic_peer_reviews]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[notify_of_update]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[group_category_id]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"assignment[grade_group_students_individually]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"assignment[external_tool_tag_attributes]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[points_possible]", "type"=>"Float", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[grading_type]", "type"=>"string", "format"=>nil, "required"=>false, "enum"=>["pass_fail", "percent", "letter_grade", "gpa_scale", "points"]}, {"paramType"=>"form", "name"=>"assignment[due_at]", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[lock_at]", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[unlock_at]", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[description]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[assignment_group_id]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"assignment[muted]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[assignment_overrides]", "type"=>"array", "format"=>nil, "required"=>false, "items"=>{"$ref"=>"AssignmentOverride"}}, {"paramType"=>"form", "name"=>"assignment[only_visible_to_overrides]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[published]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[grading_standard_id]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"assignment[omit_from_final_grade]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[quiz_lti]", "type"=>"boolean", "format"=>nil, "required"=>false}] },
|
65
65
|
"EDIT_ASSIGNMENT" => { uri: ->(course_id:, id:) { "courses/#{course_id}/assignments/#{id}" }, method: "PUT", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"form", "name"=>"assignment[name]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[position]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"assignment[submission_types]", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["online_quiz", "none", "on_paper", "online_quiz", "discussion_topic", "external_tool", "online_upload", "online_text_entry", "online_url", "media_recording"], "items"=>{"type"=>"string"}}, {"paramType"=>"form", "name"=>"assignment[allowed_extensions]", "type"=>"array", "format"=>nil, "required"=>false, "items"=>{"type"=>"string"}}, {"paramType"=>"form", "name"=>"assignment[turnitin_enabled]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[vericite_enabled]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[turnitin_settings]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[integration_data]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[integration_id]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[peer_reviews]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[automatic_peer_reviews]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[notify_of_update]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[group_category_id]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"assignment[grade_group_students_individually]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"assignment[external_tool_tag_attributes]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[points_possible]", "type"=>"Float", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[grading_type]", "type"=>"string", "format"=>nil, "required"=>false, "enum"=>["pass_fail", "percent", "letter_grade", "gpa_scale", "points"]}, {"paramType"=>"form", "name"=>"assignment[due_at]", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[lock_at]", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[unlock_at]", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[description]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[assignment_group_id]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"assignment[muted]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[assignment_overrides]", "type"=>"array", "format"=>nil, "required"=>false, "items"=>{"$ref"=>"AssignmentOverride"}}, {"paramType"=>"form", "name"=>"assignment[only_visible_to_overrides]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[published]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"assignment[grading_standard_id]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"assignment[omit_from_final_grade]", "type"=>"boolean", "format"=>nil, "required"=>false}] },
|
66
66
|
"LIST_ASSIGNMENT_OVERRIDES" => { uri: ->(course_id:, assignment_id:) { "courses/#{course_id}/assignments/#{assignment_id}/overrides" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"assignment_id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
67
67
|
"GET_SINGLE_ASSIGNMENT_OVERRIDE" => { uri: ->(course_id:, assignment_id:, id:) { "courses/#{course_id}/assignments/#{assignment_id}/overrides/#{id}" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"assignment_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
@@ -83,6 +83,12 @@ module LMS
|
|
83
83
|
"QUERY_BY_LOGIN" => { uri: ->(login_id:) { "audit/authentication/logins/#{login_id}" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"login_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"query", "name"=>"start_time", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"end_time", "type"=>"DateTime", "format"=>nil, "required"=>false}] },
|
84
84
|
"QUERY_BY_ACCOUNT" => { uri: ->(account_id:) { "audit/authentication/accounts/#{account_id}" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"account_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"query", "name"=>"start_time", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"end_time", "type"=>"DateTime", "format"=>nil, "required"=>false}] },
|
85
85
|
"QUERY_BY_USER" => { uri: ->(user_id:) { "audit/authentication/users/#{user_id}" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"user_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"query", "name"=>"start_time", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"end_time", "type"=>"DateTime", "format"=>nil, "required"=>false}] },
|
86
|
+
"GET_BLUEPRINT_INFORMATION" => { uri: ->(course_id:, template_id:) { "courses/#{course_id}/blueprint_templates/#{template_id}" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"template_id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
87
|
+
"GET_ASSOCIATED_COURSE_INFORMATION" => { uri: ->(course_id:, template_id:) { "courses/#{course_id}/blueprint_templates/#{template_id}/associated_courses" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"template_id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
88
|
+
"UPDATE_ASSOCIATED_COURSES" => { uri: ->(course_id:, template_id:) { "courses/#{course_id}/blueprint_templates/#{template_id}/update_associations" }, method: "PUT", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"template_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"form", "name"=>"course_ids_to_add", "type"=>"Array", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course_ids_to_remove", "type"=>"Array", "format"=>nil, "required"=>false}] },
|
89
|
+
"BEGIN_MIGRATION_TO_PUSH_TO_ASSOCIATED_COURSES" => { uri: ->(course_id:, template_id:) { "courses/#{course_id}/blueprint_templates/#{template_id}/migrations" }, method: "POST", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"template_id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
90
|
+
"LIST_BLUEPRINT_MIGRATIONS" => { uri: ->(course_id:, template_id:) { "courses/#{course_id}/blueprint_templates/#{template_id}/migrations" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"template_id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
91
|
+
"SHOW_BLUEPRINT_MIGRATION" => { uri: ->(course_id:, template_id:, id:) { "courses/#{course_id}/blueprint_templates/#{template_id}/migrations/#{id}" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"template_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
86
92
|
"LIST_BOOKMARKS" => { uri: ->() { "users/self/bookmarks" }, method: "GET", parameters: [] },
|
87
93
|
"CREATE_BOOKMARK" => { uri: ->() { "users/self/bookmarks" }, method: "POST", parameters: [{"paramType"=>"form", "name"=>"name", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"url", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"position", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"data", "type"=>"string", "format"=>nil, "required"=>false}] },
|
88
94
|
"GET_BOOKMARK" => { uri: ->(id:) { "users/self/bookmarks/#{id}" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
@@ -173,8 +179,8 @@ module LMS
|
|
173
179
|
"CREATE_NEW_COURSE" => { uri: ->(account_id:) { "accounts/#{account_id}/courses" }, method: "POST", parameters: [{"paramType"=>"path", "name"=>"account_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"form", "name"=>"course[name]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[course_code]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[start_at]", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[end_at]", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[license]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[is_public]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[is_public_to_auth_users]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[public_syllabus]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[public_syllabus_to_auth]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[public_description]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[allow_student_wiki_edits]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[allow_wiki_comments]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[allow_student_forum_attachments]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[open_enrollment]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[self_enrollment]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[restrict_enrollments_to_course_dates]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[term_id]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"course[sis_course_id]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[integration_id]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[hide_final_grades]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[apply_assignment_group_weights]", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[time_zone]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"offer", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"enroll_me", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[syllabus_body]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"course[grading_standard_id]", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"form", "name"=>"course[course_format]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"enable_sis_reactivation", "type"=>"boolean", "format"=>nil, "required"=>false}] },
|
174
180
|
"COURSES_UPLOAD_FILE" => { uri: ->(course_id:) { "courses/#{course_id}/files" }, method: "POST", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
175
181
|
"LIST_STUDENTS" => { uri: ->(course_id:) { "courses/#{course_id}/students" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
176
|
-
"LIST_USERS_IN_COURSE_USERS" => { uri: ->(course_id:) { "courses/#{course_id}/users" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"query", "name"=>"search_term", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"enrollment_type", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["teacher", "student", "student_view", "ta", "observer", "designer"], "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"enrollment_role", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"enrollment_role_id", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"query", "name"=>"include", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["email", "enrollments", "locked", "avatar_url", "test_student", "bio", "custom_links"], "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"user_id", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"user_ids", "type"=>"array", "format"=>"int64", "required"=>false, "items"=>{"type"=>"integer"}}, {"paramType"=>"query", "name"=>"enrollment_state", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["active", "invited", "rejected", "completed", "inactive"], "items"=>{"type"=>"string"}}] },
|
177
|
-
"LIST_USERS_IN_COURSE_SEARCH_USERS" => { uri: ->(course_id:) { "courses/#{course_id}/search_users" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"query", "name"=>"search_term", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"enrollment_type", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["teacher", "student", "student_view", "ta", "observer", "designer"], "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"enrollment_role", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"enrollment_role_id", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"query", "name"=>"include", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["email", "enrollments", "locked", "avatar_url", "test_student", "bio", "custom_links"], "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"user_id", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"user_ids", "type"=>"array", "format"=>"int64", "required"=>false, "items"=>{"type"=>"integer"}}, {"paramType"=>"query", "name"=>"enrollment_state", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["active", "invited", "rejected", "completed", "inactive"], "items"=>{"type"=>"string"}}] },
|
182
|
+
"LIST_USERS_IN_COURSE_USERS" => { uri: ->(course_id:) { "courses/#{course_id}/users" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"query", "name"=>"search_term", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"enrollment_type", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["teacher", "student", "student_view", "ta", "observer", "designer"], "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"enrollment_role", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"enrollment_role_id", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"query", "name"=>"include", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["email", "enrollments", "locked", "avatar_url", "test_student", "bio", "custom_links", "current_grading_period_scores"], "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"user_id", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"user_ids", "type"=>"array", "format"=>"int64", "required"=>false, "items"=>{"type"=>"integer"}}, {"paramType"=>"query", "name"=>"enrollment_state", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["active", "invited", "rejected", "completed", "inactive"], "items"=>{"type"=>"string"}}] },
|
183
|
+
"LIST_USERS_IN_COURSE_SEARCH_USERS" => { uri: ->(course_id:) { "courses/#{course_id}/search_users" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"query", "name"=>"search_term", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"enrollment_type", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["teacher", "student", "student_view", "ta", "observer", "designer"], "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"enrollment_role", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"enrollment_role_id", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"query", "name"=>"include", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["email", "enrollments", "locked", "avatar_url", "test_student", "bio", "custom_links", "current_grading_period_scores"], "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"user_id", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"user_ids", "type"=>"array", "format"=>"int64", "required"=>false, "items"=>{"type"=>"integer"}}, {"paramType"=>"query", "name"=>"enrollment_state", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["active", "invited", "rejected", "completed", "inactive"], "items"=>{"type"=>"string"}}] },
|
178
184
|
"LIST_RECENTLY_LOGGED_IN_STUDENTS" => { uri: ->(course_id:) { "courses/#{course_id}/recent_students" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
179
185
|
"GET_SINGLE_USER" => { uri: ->(course_id:, id:) { "courses/#{course_id}/users/#{id}" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
180
186
|
"COURSES_PREVIEW_PROCESSED_HTML" => { uri: ->(course_id:) { "courses/#{course_id}/preview_html" }, method: "POST", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"form", "name"=>"html", "type"=>"string", "format"=>nil, "required"=>false}] },
|
@@ -247,7 +253,7 @@ module LMS
|
|
247
253
|
"UNSUBSCRIBE_FROM_TOPIC_COURSES" => { uri: ->(course_id:, topic_id:) { "courses/#{course_id}/discussion_topics/#{topic_id}/subscribed" }, method: "DELETE", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"topic_id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
248
254
|
"UNSUBSCRIBE_FROM_TOPIC_GROUPS" => { uri: ->(group_id:, topic_id:) { "groups/#{group_id}/discussion_topics/#{topic_id}/subscribed" }, method: "DELETE", parameters: [{"paramType"=>"path", "name"=>"group_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"topic_id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
249
255
|
"CREATE_ENROLLMENT_TERM" => { uri: ->(account_id:) { "accounts/#{account_id}/terms" }, method: "POST", parameters: [{"paramType"=>"path", "name"=>"account_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"form", "name"=>"enrollment_term[name]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"enrollment_term[start_at]", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"enrollment_term[end_at]", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"enrollment_term[sis_term_id]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"enrollment_term[overrides][enrollment_type][start_at]", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"enrollment_term[overrides][enrollment_type][end_at]", "type"=>"DateTime", "format"=>nil, "required"=>false}] },
|
250
|
-
"UPDATE_ENROLLMENT_TERM" => { uri: ->(account_id:, id:) { "accounts/#{account_id}/terms/#{id}" }, method: "PUT", parameters: [{"paramType"=>"path", "name"=>"account_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
256
|
+
"UPDATE_ENROLLMENT_TERM" => { uri: ->(account_id:, id:) { "accounts/#{account_id}/terms/#{id}" }, method: "PUT", parameters: [{"paramType"=>"path", "name"=>"account_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"form", "name"=>"enrollment_term[name]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"enrollment_term[start_at]", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"enrollment_term[end_at]", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"enrollment_term[sis_term_id]", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"enrollment_term[overrides][enrollment_type][start_at]", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"form", "name"=>"enrollment_term[overrides][enrollment_type][end_at]", "type"=>"DateTime", "format"=>nil, "required"=>false}] },
|
251
257
|
"DELETE_ENROLLMENT_TERM" => { uri: ->(account_id:, id:) { "accounts/#{account_id}/terms/#{id}" }, method: "DELETE", parameters: [{"paramType"=>"path", "name"=>"account_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
252
258
|
"LIST_ENROLLMENT_TERMS" => { uri: ->(account_id:) { "accounts/#{account_id}/terms" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"account_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"query", "name"=>"workflow_state", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["active", "deleted", "all"], "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"include", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["overrides"], "items"=>{"type"=>"string"}}] },
|
253
259
|
"LIST_ENROLLMENTS_COURSES" => { uri: ->(course_id:) { "courses/#{course_id}/enrollments" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"query", "name"=>"type", "type"=>"array", "format"=>nil, "required"=>false, "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"role", "type"=>"array", "format"=>nil, "required"=>false, "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"state", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["active", "invited", "creation_pending", "deleted", "rejected", "completed", "inactive"], "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"include", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["avatar_url", "group_ids", "locked", "observed_users", "can_be_removed"], "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"user_id", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"grading_period_id", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"query", "name"=>"sis_account_id", "type"=>"array", "format"=>nil, "required"=>false, "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"sis_course_id", "type"=>"array", "format"=>nil, "required"=>false, "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"sis_section_id", "type"=>"array", "format"=>nil, "required"=>false, "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"sis_user_id", "type"=>"array", "format"=>nil, "required"=>false, "items"=>{"type"=>"string"}}] },
|
@@ -501,8 +507,8 @@ module LMS
|
|
501
507
|
"GET_ALL_PEER_REVIEWS_SECTIONS_SUBMISSIONS" => { uri: ->(section_id:, assignment_id:, submission_id:) { "sections/#{section_id}/assignments/#{assignment_id}/submissions/#{submission_id}/peer_reviews" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"section_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"assignment_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"submission_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"query", "name"=>"include", "type"=>"array", "format"=>nil, "required"=>false, "enum"=>["submission_comments", "user"], "items"=>{"type"=>"string"}}] },
|
502
508
|
"PEER_REVIEWS_CREATE_PEER_REVIEW_COURSES" => { uri: ->(course_id:, assignment_id:, submission_id:) { "courses/#{course_id}/assignments/#{assignment_id}/submissions/#{submission_id}/peer_reviews" }, method: "POST", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"assignment_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"submission_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"form", "name"=>"user_id", "type"=>"integer", "format"=>"int64", "required"=>true}] },
|
503
509
|
"PEER_REVIEWS_CREATE_PEER_REVIEW_SECTIONS" => { uri: ->(section_id:, assignment_id:, submission_id:) { "sections/#{section_id}/assignments/#{assignment_id}/submissions/#{submission_id}/peer_reviews" }, method: "POST", parameters: [{"paramType"=>"path", "name"=>"section_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"assignment_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"submission_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"form", "name"=>"user_id", "type"=>"integer", "format"=>"int64", "required"=>true}] },
|
504
|
-
"
|
505
|
-
"
|
510
|
+
"DELETE_PEER_REVIEW_COURSES" => { uri: ->(course_id:, assignment_id:, submission_id:) { "courses/#{course_id}/assignments/#{assignment_id}/submissions/#{submission_id}/peer_reviews" }, method: "DELETE", parameters: [{"paramType"=>"path", "name"=>"course_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"assignment_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"submission_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"query", "name"=>"user_id", "type"=>"integer", "format"=>"int64", "required"=>true}] },
|
511
|
+
"DELETE_PEER_REVIEW_SECTIONS" => { uri: ->(section_id:, assignment_id:, submission_id:) { "sections/#{section_id}/assignments/#{assignment_id}/submissions/#{submission_id}/peer_reviews" }, method: "DELETE", parameters: [{"paramType"=>"path", "name"=>"section_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"assignment_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"submission_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"query", "name"=>"user_id", "type"=>"integer", "format"=>"int64", "required"=>true}] },
|
506
512
|
"LIST_POLL_SESSIONS_FOR_POLL" => { uri: ->(poll_id:) { "polls/#{poll_id}/poll_sessions" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"poll_id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
507
513
|
"GET_RESULTS_FOR_SINGLE_POLL_SESSION" => { uri: ->(poll_id:, id:) { "polls/#{poll_id}/poll_sessions/#{id}" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"poll_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
508
514
|
"CREATE_SINGLE_POLL_SESSION" => { uri: ->(poll_id:) { "polls/#{poll_id}/poll_sessions" }, method: "POST", parameters: [{"paramType"=>"path", "name"=>"poll_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"form", "name"=>"poll_sessions[course_id]", "type"=>"array", "format"=>"int64", "required"=>true, "items"=>{"type"=>"integer"}}, {"paramType"=>"form", "name"=>"poll_sessions[course_section_id]", "type"=>"array", "format"=>"int64", "required"=>false, "items"=>{"type"=>"integer"}}, {"paramType"=>"form", "name"=>"poll_sessions[has_public_results]", "type"=>"array", "format"=>nil, "required"=>false, "items"=>{"type"=>"boolean"}}] },
|
@@ -580,8 +586,8 @@ module LMS
|
|
580
586
|
"GET_SIS_IMPORT_STATUS" => { uri: ->(account_id:, id:) { "accounts/#{account_id}/sis_imports/#{id}" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"account_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
581
587
|
"ABORT_SIS_IMPORT" => { uri: ->(account_id:, id:) { "accounts/#{account_id}/sis_imports/#{id}/abort" }, method: "PUT", parameters: [{"paramType"=>"path", "name"=>"account_id", "type"=>"string", "format"=>nil, "required"=>true}, {"paramType"=>"path", "name"=>"id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
582
588
|
"ABORT_ALL_PENDING_SIS_IMPORTS" => { uri: ->(account_id:) { "accounts/#{account_id}/sis_imports/abort_all_pending" }, method: "PUT", parameters: [{"paramType"=>"path", "name"=>"account_id", "type"=>"string", "format"=>nil, "required"=>true}] },
|
583
|
-
"RETRIEVE_ASSIGNMENTS_ENABLED_FOR_GRADE_EXPORT_TO_SIS_ACCOUNTS" => { uri: ->(account_id:) { "/sis/accounts/#{account_id}/assignments" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"account_id", "type"=>"integer", "format"=>"int64", "required"=>true}, {"paramType"=>"query", "name"=>"course_id", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"query", "name"=>"starts_before", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"ends_after", "type"=>"DateTime", "format"=>nil, "required"=>false}] },
|
584
|
-
"RETRIEVE_ASSIGNMENTS_ENABLED_FOR_GRADE_EXPORT_TO_SIS_COURSES" => { uri: ->(course_id:) { "/sis/courses/#{course_id}/assignments" }, method: "GET", parameters: [{"paramType"=>"query", "name"=>"account_id", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"path", "name"=>"course_id", "type"=>"integer", "format"=>"int64", "required"=>true}, {"paramType"=>"query", "name"=>"starts_before", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"ends_after", "type"=>"DateTime", "format"=>nil, "required"=>false}] },
|
589
|
+
"RETRIEVE_ASSIGNMENTS_ENABLED_FOR_GRADE_EXPORT_TO_SIS_ACCOUNTS" => { uri: ->(account_id:) { "/sis/accounts/#{account_id}/assignments" }, method: "GET", parameters: [{"paramType"=>"path", "name"=>"account_id", "type"=>"integer", "format"=>"int64", "required"=>true}, {"paramType"=>"query", "name"=>"course_id", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"query", "name"=>"starts_before", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"ends_after", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"include", "type"=>"string", "format"=>nil, "required"=>false, "enum"=>["student_overrides"]}] },
|
590
|
+
"RETRIEVE_ASSIGNMENTS_ENABLED_FOR_GRADE_EXPORT_TO_SIS_COURSES" => { uri: ->(course_id:) { "/sis/courses/#{course_id}/assignments" }, method: "GET", parameters: [{"paramType"=>"query", "name"=>"account_id", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"path", "name"=>"course_id", "type"=>"integer", "format"=>"int64", "required"=>true}, {"paramType"=>"query", "name"=>"starts_before", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"ends_after", "type"=>"DateTime", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"include", "type"=>"string", "format"=>nil, "required"=>false, "enum"=>["student_overrides"]}] },
|
585
591
|
"FIND_RECIPIENTS_CONVERSATIONS" => { uri: ->() { "conversations/find_recipients" }, method: "GET", parameters: [{"paramType"=>"query", "name"=>"search", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"context", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"exclude", "type"=>"array", "format"=>nil, "required"=>false, "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"type", "type"=>"string", "format"=>nil, "required"=>false, "enum"=>["user", "context"]}, {"paramType"=>"query", "name"=>"user_id", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"query", "name"=>"from_conversation_id", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"query", "name"=>"permissions", "type"=>"array", "format"=>nil, "required"=>false, "items"=>{"type"=>"string"}}] },
|
586
592
|
"FIND_RECIPIENTS_SEARCH" => { uri: ->() { "search/recipients" }, method: "GET", parameters: [{"paramType"=>"query", "name"=>"search", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"context", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"exclude", "type"=>"array", "format"=>nil, "required"=>false, "items"=>{"type"=>"string"}}, {"paramType"=>"query", "name"=>"type", "type"=>"string", "format"=>nil, "required"=>false, "enum"=>["user", "context"]}, {"paramType"=>"query", "name"=>"user_id", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"query", "name"=>"from_conversation_id", "type"=>"integer", "format"=>"int64", "required"=>false}, {"paramType"=>"query", "name"=>"permissions", "type"=>"array", "format"=>nil, "required"=>false, "items"=>{"type"=>"string"}}] },
|
587
593
|
"LIST_ALL_COURSES" => { uri: ->() { "search/all_courses" }, method: "GET", parameters: [{"paramType"=>"query", "name"=>"search", "type"=>"string", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"public_only", "type"=>"boolean", "format"=>nil, "required"=>false}, {"paramType"=>"query", "name"=>"open_enrollment_only", "type"=>"boolean", "format"=>nil, "required"=>false}] },
|
data/lib/lms/version.rb
CHANGED
data/lib/tasks/canvas_api.rake
CHANGED
@@ -3,278 +3,19 @@ require "active_support"
|
|
3
3
|
require "active_support/core_ext/object/blank"
|
4
4
|
require "active_support/core_ext/string/inflections"
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
def graphql_type(name, property)
|
10
|
-
if property["$ref"]
|
11
|
-
"#{property['$ref']}, resolve: function(model){ return model.#{name}; }"
|
12
|
-
else
|
13
|
-
type = property["type"]
|
14
|
-
case type
|
15
|
-
when "integer", "string", "boolean", "datetime", "number"
|
16
|
-
graphql_primitive(type, property["format"])
|
17
|
-
when "array"
|
18
|
-
begin
|
19
|
-
type = if property["items"]["$ref"]
|
20
|
-
property["items"]["$ref"]
|
21
|
-
else
|
22
|
-
graphql_primitive(property["items"]["type"], property["items"]["format"])
|
23
|
-
end
|
24
|
-
rescue
|
25
|
-
type = "GraphQLString"
|
26
|
-
end
|
27
|
-
"new GraphQLList(#{type})"
|
28
|
-
when "object"
|
29
|
-
# TODO handle objects
|
30
|
-
nil
|
31
|
-
else
|
32
|
-
"unknown - #{property}"
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def graphql_resolve(name, property)
|
38
|
-
if property["$ref"]
|
39
|
-
"function(model){ return model.#{name}; }"
|
40
|
-
elsif property["type"] == "array" && property["items"] && property["items"]["$ref"]
|
41
|
-
"function(model){ return model.#{name}; }"
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def graphql_primitive(type, format)
|
46
|
-
case type
|
47
|
-
when "integer"
|
48
|
-
"GraphQLInt"
|
49
|
-
when "number"
|
50
|
-
if format == "float64"
|
51
|
-
"GraphQLFloat"
|
52
|
-
else
|
53
|
-
# TODO many of the LMS types with 'number' don't indicate a type so we have to guess
|
54
|
-
# Hopefully that changes. For now we go with float
|
55
|
-
"GraphQLFloat"
|
56
|
-
end
|
57
|
-
when "string"
|
58
|
-
"GraphQLString"
|
59
|
-
when "boolean"
|
60
|
-
"GraphQLBoolean"
|
61
|
-
when "datetime"
|
62
|
-
"GraphQLDateTime"
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
def fields(model, resource_name)
|
67
|
-
model["properties"].map do |name, property|
|
68
|
-
# HACK. This property doesn't have any metadata. Throw in a couple lines of code
|
69
|
-
# specific to this field.
|
70
|
-
if name == "created_source" && property == "manual|sis|api"
|
71
|
-
"#{name}: new GraphQLEnumType({ name: '#{name}', values: { manual: { value: 'manual' }, sis: { value: 'sis' }, api: { value: 'api' } } })"
|
72
|
-
else
|
73
|
-
|
74
|
-
description = ""
|
75
|
-
if property["description"].present? && property["example"].present?
|
76
|
-
description << "#{safe_js(property['description'])}. Example: #{safe_js(property['example'])}".gsub("..", "").gsub("\n", " ")
|
77
|
-
end
|
78
|
-
|
79
|
-
if type = graphql_type(name, property)
|
80
|
-
resolve = graphql_resolve(name, property)
|
81
|
-
resolve = "resolve: #{resolve}, " if resolve.present?
|
82
|
-
"#{name}: { type: #{type}, #{resolve}description: \"#{description}\" }"
|
83
|
-
end
|
84
|
-
|
85
|
-
end
|
86
|
-
end.compact
|
87
|
-
end
|
88
|
-
|
89
|
-
def safe_js(str)
|
90
|
-
str = str.join(", ") if str.is_a?(Array)
|
91
|
-
str = str.map { |_k, v| v }.join(", ") if str.is_a?(Hash)
|
92
|
-
return str unless str.is_a?(String)
|
93
|
-
str.gsub('"', "'")
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
module JsHelpers
|
98
|
-
def js_url_parts(api_url)
|
99
|
-
api_url.split(/(\{[a-z_]+\})/).map do |part|
|
100
|
-
if part[0] == "{"
|
101
|
-
arg = part.gsub(/[\{\}]/, "")
|
102
|
-
"args['#{arg}']"
|
103
|
-
else
|
104
|
-
%{"#{part}"}
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
def js_args(args)
|
110
|
-
if args.present?
|
111
|
-
"['#{args.join("', '")}']"
|
112
|
-
else
|
113
|
-
"[]"
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
def parameters_doc(operation)
|
118
|
-
if operation["parameters"].present?
|
119
|
-
parameters = operation["parameters"].
|
120
|
-
reject { |p| p["paramType"] == "path" }.
|
121
|
-
map { |p| "#{p['name']}#{p['required'] ? ' (required)' : ''}" }.
|
122
|
-
compact
|
123
|
-
if parameters.present?
|
124
|
-
"\n// const query = {\n// #{parameters.join("\n// ")}\n// }"
|
125
|
-
else
|
126
|
-
""
|
127
|
-
end
|
128
|
-
else
|
129
|
-
""
|
130
|
-
end
|
131
|
-
end
|
132
|
-
|
133
|
-
def key_args(args)
|
134
|
-
if args.blank?
|
135
|
-
""
|
136
|
-
elsif args.length > 1
|
137
|
-
"#{nickname}_{#{args.join('}_{')}}"
|
138
|
-
else
|
139
|
-
"#{nickname}_#{args[0]}"
|
140
|
-
end
|
141
|
-
end
|
142
|
-
|
143
|
-
def reducer_key(nickname, args)
|
144
|
-
"#{nickname}#{key_args(args)}"
|
145
|
-
end
|
146
|
-
|
147
|
-
end
|
148
|
-
|
149
|
-
module RubyHelpers
|
6
|
+
require "lms/canvas_urls"
|
7
|
+
require "lms/helper_urls"
|
150
8
|
|
151
|
-
|
152
|
-
api_url.gsub("{", "#\{")
|
153
|
-
end
|
9
|
+
require "canvas_api"
|
154
10
|
|
155
|
-
|
156
|
-
|
157
|
-
class Render
|
158
|
-
include GraphQLHelpers
|
159
|
-
include JsHelpers
|
160
|
-
include RubyHelpers
|
161
|
-
attr_accessor :template, :description, :resource, :api_url, :operation,
|
162
|
-
:args, :method, :api, :name, :resource_name, :resource_api,
|
163
|
-
:nickname, :notes, :content, :summary, :model, :model_name
|
164
|
-
|
165
|
-
def initialize(template, api, resource, resource_api, operation, parameters, content, model)
|
166
|
-
@template = File.read(File.expand_path(template, __dir__))
|
167
|
-
if api
|
168
|
-
@api = api
|
169
|
-
@name = @api["path"].gsub("/", "").gsub(".json", "")
|
170
|
-
@description = @api["description"]
|
171
|
-
end
|
172
|
-
if resource
|
173
|
-
@resource = resource
|
174
|
-
@resource_name = resource["resourcePath"].gsub("/", "")
|
175
|
-
end
|
176
|
-
if resource_api
|
177
|
-
@resource_api = resource_api
|
178
|
-
@api_url = resource_api["path"].gsub("/v1/", "")
|
179
|
-
@args = args(@api_url)
|
180
|
-
end
|
181
|
-
if operation
|
182
|
-
nickname = operation["nickname"]
|
183
|
-
nickname = "#{@name}_#{nickname}" if [
|
184
|
-
"upload_file",
|
185
|
-
"query_by_course",
|
186
|
-
"preview_processed_html",
|
187
|
-
"create_peer_review_courses",
|
188
|
-
"create_peer_review_sections",
|
189
|
-
"set_extensions_for_student_quiz_submissions"
|
190
|
-
].include?(nickname)
|
191
|
-
|
192
|
-
@method = operation["method"]
|
193
|
-
@operation = operation
|
194
|
-
@nickname = nickname
|
195
|
-
@notes = operation["notes"].gsub("\n", "\n// ")
|
196
|
-
@summary = operation["summary"]
|
197
|
-
end
|
198
|
-
if parameters
|
199
|
-
@parameters = parameters.map { |p| p.delete("description"); p }
|
200
|
-
end
|
201
|
-
@content = content
|
202
|
-
@model = model
|
203
|
-
end
|
204
|
-
|
205
|
-
def args(api_url)
|
206
|
-
api_url.split("/").map do |part|
|
207
|
-
if part[0] == "{"
|
208
|
-
part.gsub(/[\{\}]/, "")
|
209
|
-
end
|
210
|
-
end.compact
|
211
|
-
end
|
212
|
-
|
213
|
-
def render
|
214
|
-
ERB.new(@template, nil, "-").result(binding).strip
|
215
|
-
end
|
216
|
-
|
217
|
-
def save(file)
|
218
|
-
File.write(file, render)
|
219
|
-
end
|
220
|
-
|
221
|
-
end
|
222
|
-
|
223
|
-
class LMSApiBuilder
|
224
|
-
|
225
|
-
def self.build
|
226
|
-
current_path = File.expand_path(File.dirname(__FILE__))
|
227
|
-
atomic_client = File.expand_path(File.join(current_path, "../../../atomic-client"))
|
228
|
-
atomic_lti = File.expand_path(File.join(current_path, "../../../atomic-lti"))
|
229
|
-
project_root = File.expand_path(File.join(current_path, "../../"))
|
230
|
-
|
231
|
-
endpoint = "https://canvas.instructure.com/doc/api"
|
232
|
-
directory = HTTParty.get("#{endpoint}/api-docs.json")
|
233
|
-
lms_urls_rb = []
|
234
|
-
lms_urls_js = []
|
235
|
-
models = []
|
236
|
-
queries = []
|
237
|
-
mutations = []
|
238
|
-
directory["apis"].each do |api|
|
239
|
-
puts "Generating #{api['description']}"
|
240
|
-
resource = HTTParty.get("#{endpoint}#{api['path']}")
|
241
|
-
constants = []
|
242
|
-
resource["apis"].each do |resource_api|
|
243
|
-
resource_api["operations"].each do |operation|
|
244
|
-
parameters = operation["parameters"]
|
245
|
-
constants << Render.new("./canvas_api/constant.erb", api, resource, resource_api, operation, parameters, nil, nil).render
|
246
|
-
lms_urls_rb << Render.new("./canvas_api/rb_url.erb", api, resource, resource_api, operation, parameters, nil, nil).render
|
247
|
-
lms_urls_js << Render.new("./canvas_api/js_url.erb", api, resource, resource_api, operation, parameters, nil, nil).render
|
248
|
-
if "GET" == operation["method"].upcase
|
249
|
-
queries << Render.new("./canvas_api/graphql_query.erb", api, resource, resource_api, operation, parameters, nil, nil).render
|
250
|
-
else
|
251
|
-
mutations << Render.new("./canvas_api/graphql_mutation.erb", api, resource, resource_api, operation, parameters, nil, nil).render
|
252
|
-
end
|
253
|
-
end
|
254
|
-
end
|
255
|
-
resource["models"].map do |_name, model|
|
256
|
-
if model["properties"] # Don't generate models without properties
|
257
|
-
models << Render.new("./canvas_api/graphql_model.erb", api, resource, nil, nil, nil, nil, model).render
|
258
|
-
end
|
259
|
-
end
|
260
|
-
# Generate one file of constants for every LMS API
|
261
|
-
constants_renderer = Render.new("./canvas_api/constants.erb", api, resource, nil, nil, nil, constants, nil)
|
262
|
-
constants_renderer.save("#{atomic_client}/client/js/libs/canvas/constants/#{constants_renderer.name}.js")
|
263
|
-
end
|
264
|
-
|
265
|
-
Render.new("./canvas_api/rb_urls.erb", nil, nil, nil, nil, nil, lms_urls_rb, nil).save("#{project_root}/lib/lms/canvas_urls.rb")
|
266
|
-
Render.new("./canvas_api/js_urls.erb", nil, nil, nil, nil, nil, lms_urls_js, nil).save("#{atomic_lti}/lib/canvas/urls.js")
|
267
|
-
|
268
|
-
# GraphQL - still not complete
|
269
|
-
Render.new("./canvas_api/graphql_types.erb", nil, nil, nil, nil, nil, models.compact, nil).save("#{atomic_lti}/lib/canvas/graphql_types.js")
|
270
|
-
Render.new("./canvas_api/graphql_queries.erb", nil, nil, nil, nil, nil, queries, nil).save("#{atomic_lti}/lib/canvas/graphql_queries.js")
|
271
|
-
Render.new("./canvas_api/graphql_mutations.erb", nil, nil, nil, nil, nil, mutations, nil).save("#{atomic_lti}/lib/canvas/graphql_mutations.js")
|
272
|
-
end
|
273
|
-
|
274
|
-
end
|
11
|
+
namespace :canvas do
|
275
12
|
|
276
13
|
desc "Scrape the LMS api"
|
277
14
|
task :api do
|
278
|
-
|
15
|
+
current_path = File.expand_path(File.dirname(__FILE__))
|
16
|
+
client_app_path = File.expand_path(File.join(current_path, "../../../atomic-client/client/libs/canvas/constants"))
|
17
|
+
server_app_path = File.expand_path(File.join(current_path, "../../../atomic-lti"))
|
18
|
+
project_root = File.expand_path(File.join(current_path, "../../"))
|
19
|
+
CanvasApi::Builder.build(project_root, client_app_path, server_app_path)
|
279
20
|
end
|
280
21
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lms-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Atomic Jolt
|
@@ -131,18 +131,6 @@ files:
|
|
131
131
|
- lib/lms/version.rb
|
132
132
|
- lib/lms_api.rb
|
133
133
|
- lib/tasks/canvas_api.rake
|
134
|
-
- lib/tasks/canvas_api/constant.erb
|
135
|
-
- lib/tasks/canvas_api/constants.erb
|
136
|
-
- lib/tasks/canvas_api/graphql_model.erb
|
137
|
-
- lib/tasks/canvas_api/graphql_mutation.erb
|
138
|
-
- lib/tasks/canvas_api/graphql_mutations.erb
|
139
|
-
- lib/tasks/canvas_api/graphql_queries.erb
|
140
|
-
- lib/tasks/canvas_api/graphql_query.erb
|
141
|
-
- lib/tasks/canvas_api/graphql_types.erb
|
142
|
-
- lib/tasks/canvas_api/js_url.erb
|
143
|
-
- lib/tasks/canvas_api/js_urls.erb
|
144
|
-
- lib/tasks/canvas_api/rb_url.erb
|
145
|
-
- lib/tasks/canvas_api/rb_urls.erb
|
146
134
|
homepage: https://github.com/atomicjolt/lms_api
|
147
135
|
licenses:
|
148
136
|
- MIT
|
@@ -1,10 +0,0 @@
|
|
1
|
-
<% parameters_doc = parameters_doc(operation) -%>
|
2
|
-
// <%=@summary%>
|
3
|
-
// <%=@notes%>
|
4
|
-
//
|
5
|
-
// API Docs: https://canvas.instructure.com/doc/api/<%=@resource_name%>.html
|
6
|
-
// API Url: <%=@api_url%>
|
7
|
-
//
|
8
|
-
// Example:<%=parameters_doc%>
|
9
|
-
// return canvasRequest(<%=@nickname%>, {<%=@args.join(', ')%>}<%= parameters_doc.present? ? ", query" : ""%>);
|
10
|
-
export const <%=@nickname.camelcase(:lower)%> = { type: '<%=@nickname.upcase%>', method: '<%=@method.downcase%>', key: '<%=reducer_key(@nickname, @args)%>', required: <%=js_args(@args)%> };
|
File without changes
|
@@ -1,64 +0,0 @@
|
|
1
|
-
import {
|
2
|
-
GraphQLBoolean,
|
3
|
-
GraphQLFloat,
|
4
|
-
GraphQLID,
|
5
|
-
GraphQLInt,
|
6
|
-
GraphQLList,
|
7
|
-
GraphQLNonNull,
|
8
|
-
GraphQLObjectType,
|
9
|
-
GraphQLSchema,
|
10
|
-
GraphQLString
|
11
|
-
} from 'graphql';
|
12
|
-
|
13
|
-
import {
|
14
|
-
connectionArgs,
|
15
|
-
connectionDefinitions,
|
16
|
-
connectionFromArray,
|
17
|
-
fromGlobalId,
|
18
|
-
globalIdField,
|
19
|
-
mutationWithClientMutationId,
|
20
|
-
nodeDefinitions,
|
21
|
-
connectionFromPromisedArray
|
22
|
-
} from 'graphql-relay';
|
23
|
-
|
24
|
-
import {
|
25
|
-
GraphQLLimitedString,
|
26
|
-
GraphQLDateTime
|
27
|
-
} from 'graphql-custom-types';
|
28
|
-
|
29
|
-
/**
|
30
|
-
* We get the node interface and field from the Relay library.
|
31
|
-
*
|
32
|
-
* The first method defines the way we resolve an ID to its object.
|
33
|
-
* The second defines the way we resolve an object to its GraphQL type.
|
34
|
-
*/
|
35
|
-
var {nodeInterface, nodeField} = nodeDefinitions(
|
36
|
-
(globalId) => {
|
37
|
-
var {type, id} = fromGlobalId(globalId);
|
38
|
-
if (type === 'User') {
|
39
|
-
return getUser(id);
|
40
|
-
} else if (type === 'Widget') {
|
41
|
-
return getWidget(id);
|
42
|
-
} else {
|
43
|
-
return null;
|
44
|
-
}
|
45
|
-
},
|
46
|
-
(obj) => {
|
47
|
-
if (obj instanceof User) {
|
48
|
-
return userType;
|
49
|
-
} else if (obj instanceof Widget) {
|
50
|
-
return widgetType;
|
51
|
-
} else {
|
52
|
-
return null;
|
53
|
-
}
|
54
|
-
}
|
55
|
-
);
|
56
|
-
|
57
|
-
<%=@content.join("\n\n")%>
|
58
|
-
|
59
|
-
const Schema = new GraphQLSchema({
|
60
|
-
query: Query,
|
61
|
-
mutation: Mutuation
|
62
|
-
});
|
63
|
-
|
64
|
-
export default Schema;
|
@@ -1 +0,0 @@
|
|
1
|
-
<%=@nickname.upcase%>: { uri: function(args){return <%=js_url_parts(@api_url).join(' + ')%>}, method: "<%=@method%>", parameters: <%=@parameters.to_json%> }
|
@@ -1 +0,0 @@
|
|
1
|
-
"<%=@nickname.upcase%>" => { uri: ->(<%=@args.map{|a| "#{a}:"}.join(', ')%>) { "<%=ruby_api_url(@api_url)%>" }, method: "<%=@method%>", parameters: <%=@parameters%> }
|