Sha256: 38b633b1e347a43161ff9a57830ab185f6fdb06da19a4df9f24d446cdf0e6d61

Contents?: true

Size: 1.68 KB

Versions: 1

Compression:

Stored size: 1.68 KB

Contents

module MoodleRb
  class Enrolments
    include HTTParty
    include Utility

    attr_reader :token, :query_options
    STUDENT_ROLE_ID = 5
    TEACHER_ROLE_ID = 3

    def initialize(token, url, query_options)
      @token = token
      @query_options = query_options
      self.class.base_uri url
    end

    # required params:
    # user_id course_id
    # optional params:
    # role_id - defaults to student role id
    def create(params)
      response = self.class.post(
        '/webservice/rest/server.php',
        {
          :query => query_hash('enrol_manual_enrol_users', token),
          :body => {
            :enrolments => {
              '0' => {
                :userid => params[:user_id],
                :courseid => params[:course_id],
                :roleid => params[:role_id] || STUDENT_ROLE_ID
              }
            }
          }
        }.merge(query_options)
      )
      check_for_errors(response)
      response.code == 200 && response.parsed_response.nil?
    end

    # required params:
    # user_id course_id
    # optional params:
    # role_id - defaults to student role id
    def destroy(params)
      response = self.class.post(
        '/webservice/rest/server.php',
        {
          :query => query_hash('enrol_manual_unenrol_users', token),
          :body => {
            :enrolments => {
              '0' => {
                :userid => params[:user_id],
                :courseid => params[:course_id],
                :roleid => params[:role_id] || STUDENT_ROLE_ID
              }
            }
          }
        }.merge(query_options)
      )
      check_for_errors(response)
      response.code == 200 && response.parsed_response.nil?
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
moodle_rb-1.1.3 lib/moodle_rb/enrolments.rb