class CompanionCube::Client
Constants
- API_HEADERS
Attributes
resource[RW]
Public Class Methods
new(url:, access_key: nil, secret_key: nil)
click to toggle source
# File lib/companion_cube/client.rb, line 8 def initialize(url:, access_key: nil, secret_key: nil) raise "Missing required parameter 'url'" if url.nil? || url.empty? keys_empty = !access_key.nil? && access_key.empty? keys_empty ||= !secret_key.nil? && secret_key.empty? raise "Access/secret key cannot be blank" if keys_empty self.resource = RestClient::Resource.new(url, access_key, secret_key) end
Public Instance Methods
course(id)
click to toggle source
# File lib/companion_cube/client.rb, line 32 def course(id) raise "Missing required parameter 'id'" if id.nil? JSON.parse(send_request(:get, "/courses/#{id}")) end
courses()
click to toggle source
# File lib/companion_cube/client.rb, line 18 def courses JSON.parse(send_request(:get, "/courses")) end
create_course(params)
click to toggle source
# File lib/companion_cube/client.rb, line 22 def create_course(params) params[:multipart] = true send_request(:post, "/courses", body: params) end
delete_course(id)
click to toggle source
# File lib/companion_cube/client.rb, line 28 def delete_course(id) send_request(:delete, "/courses/#{id}") end
enroll_user(id, email)
click to toggle source
# File lib/companion_cube/client.rb, line 38 def enroll_user(id, email) raise "Missing required parameter 'id'" if id.nil? raise "Missing required parameter 'email'" if email.nil? params = Hash.new params[:id] = id params[:email] = email send_request(:put, "/enrollments/#{id}", body: params) end
reports(type, params = {})
click to toggle source
# File lib/companion_cube/client.rb, line 53 def reports(type, params = {}) raise "Missing required parameter 'type'" if type.nil? format = params.fetch(:format, :json).to_sym response = send_request(:get, "/reports/#{type}", params: params, accept: format) return JSON.parse(response) if format == :json # csv, etc. response end
update_course(id, params)
click to toggle source
# File lib/companion_cube/client.rb, line 47 def update_course(id, params) params[:multipart] = true send_request(:put, "/courses/#{id}", body: params) end
Protected Instance Methods
send_request(method, path, opts = {})
click to toggle source
# File lib/companion_cube/client.rb, line 67 def send_request(method, path, opts = {}) body = opts.fetch(:body, {}) headers = opts.fetch(:headers, {}).merge(API_HEADERS) response = if %i[get delete].include?(method) resource[path].send(method, opts) else resource[path].send(method, body, headers) end response.body end