lib/bearcat/client/submissions.rb in bearcat-1.4.13 vs lib/bearcat/client/submissions.rb in bearcat-1.5.0.beta1
- old
+ new
@@ -1,57 +1,35 @@
module Bearcat
class Client < Footrest::Client
module Submissions
+ extend ClientModule
- def course_submissions(course, params={})
- get("/api/v1/courses/#{course.to_s}/students/submissions", params)
+ prefix "/api/v1/courses/:course/assignments/:assignment/submissions/" do
+ get :get_course_submissions
+ get :user_course_assignment_submission, ":user"
end
- def section_submissions(section, params={})
- get("/api/v1/sections/#{section.to_s}/students/submissions", params)
- end
+ context_types %i[course section] do |ct|
+ prefix "/api/v1/#{ct}s/:#{ct}/" do
+ get :"#{ct}_submissions", "students/submissions"
- def get_course_submissions(course, assignment, params={})
- get("/api/v1/courses/#{course.to_s}/assignments/#{assignment}/submissions", params)
+ prefix "assignments/:assignment/submissions/" do
+ post :"#{ct}_submission"
+ put :"grade_#{ct}_submission", ":user"
+ post :"#{ct}_update_grades", "update_grades"
+ end
+ end
end
- def user_course_assignment_submission(course, assignment, user, params={})
- get("/api/v1/courses/#{course.to_s}/assignments/#{assignment.to_s}/submissions/#{user.to_s}", params)
- end
-
- def course_submission(course, assignment, params)
- post("/api/v1/courses/#{course}/assignments/#{assignment}/submissions", params)
- end
-
- def section_submission(section, assignment, params)
- post("/api/v1/sections/#{section}/assignments/#{assignment}/submissions", params)
- end
-
- def grade_course_submission(course, assignment, user, params)
- put("/api/v1/courses/#{course}/assignments/#{assignment}/submissions/#{user}", params)
- end
-
- def grade_section_submission(section, assignment, user, params)
- put("/api/v1/sections/#{section}/assignments/#{assignment}/submissions/#{user}", params)
- end
-
def course_file_upload_submission(course, assignment, user, file_data, params={})
file_upload_submission(course, assignment, user, file_data, params, type: :course)
end
def section_file_upload_submission(section, assignment, user, file_data, params={})
file_upload_submission(section, assignment, user, file_data, params, type: :section)
end
- def course_update_grades(course, assignment, params={})
- post("/api/v1/courses/#{course}/assignments/#{assignment}/submissions/update_grades", params)
- end
-
- def section_update_grades(section, assignment, params={})
- post("/api/v1/sections/#{section}/assignments/#{assignment}/submissions/update_grades", params)
- end
-
protected
# @param file_data One of an array of file_path strings or an array of Hashes, each being upload file params plus the file's path
def file_upload_submission(type_id, assignment, user, file_data=nil, params={}, type:)
raise ArgumentError, 'Invalid type' unless [:course, :section].include?(type)
@@ -84,9 +62,8 @@
end
sub_params.merge!(params[:submission]) if params[:submission].present?
params[:submission] = sub_params
send("#{type}_submission".to_sym, type_id, assignment, params)
end
-
end
end
end