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