Class: BridgeAPI::Client

Inherits:
Footrest::Client
  • Object
show all
Includes:
CourseTemplate, CustomField, DataDump, Enrollment, Manager, User, Footrest
Defined in:
lib/bridge_api/client.rb,
lib/bridge_api/client/user.rb,
lib/bridge_api/client/manager.rb,
lib/bridge_api/client/data_dump.rb,
lib/bridge_api/client/enrollment.rb,
lib/bridge_api/client/custom_field.rb,
lib/bridge_api/client/course_template.rb

Defined Under Namespace

Modules: CourseTemplate, CustomField, DataDump, Enrollment, Manager, User

Constant Summary collapse

DATA_DUMP_DOWNLOAD_PATH =
'/data_dumps/download'
DATA_DUMP_PATH =
'/data_dumps'
COURSE_TEMPLATE_PATH =
'/course_templates'
ENROLLMENT_PATH =
'/enrollments'
USER_PATH =
'/users'
MANAGER_PATH =
'/managers'
ADMIN_PATH =
"/admin"
AUTHOR_PATH =
"/author"
LEARNER_PATH =
"/learner"
CUSTOM_FIELD_PATH =
"/custom_fields"
API_VERSION =
1
API_PATH =
'/api'

Instance Method Summary collapse

Methods included from DataDump

#create_data_dump, #download_data_dump, #get_data_dumps

Methods included from CustomField

#add_custom_field, #delete_custom_field, #get_all_custom_fields, #get_custom_field, #update_custom_field

Methods included from Manager

#get_all_managers, #get_manager_direct_reports

Methods included from User

#add_user, #delete_user, #get_all_users, #get_user, #update_user

Methods included from Enrollment

#add_enrollment, #delete_enrollment, #get_all_enrollments, #update_enrollment

Methods included from CourseTemplate

#create_course_template, #delete_course_template, #get_all_course_templates, #get_course_template, #publish_course_template, #update_course_template

Instance Method Details

#request(method, &block) ⇒ Object

Override Footrest request for ApiArray support



40
41
42
# File 'lib/bridge_api/client.rb', line 40

def request(method, &block)
  ApiArray::process_response(connection.send(method, &block), self)
end

#set_connection(config) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/bridge_api/client.rb', line 44

def set_connection(config)
  config[:logger] = config[:logging] if config[:logging]
  @connection = Faraday.new(url: config[:prefix]) do |faraday|
    faraday.request                     :multipart
    faraday.request                     :url_encoded
    if config[:logger] == true
      faraday.response :logger
    elsif config[:logger]
      faraday.use Faraday::Response::Logger, config[:logger]
    end
    faraday.use                         Footrest::FollowRedirects, limit: 5 unless config[:follow_redirects] == false
    faraday.adapter                     Faraday.default_adapter
    faraday.use                         Footrest::ParseJson, :content_type => /\bjson$/
    faraday.use                         Footrest::RaiseFootrestErrors
    faraday.use                         Footrest::Pagination
    faraday.headers[:accept]          = "application/json"
    faraday.headers[:authorization]   = "Bearer #{config[:token]}" if config[:token]
    faraday.headers[:user_agent]      = "Footrest"
    if config[:api_key] && config[:api_secret]
      faraday.headers[:authorization] =   'Basic ' + Base64.strict_encode64("#{config[:api_key]}:#{config[:api_secret]}")
    elsif config[:token]
      faraday.headers[:authorization] =   "Bearer #{config[:token]}"
    else
      raise 'No api authorization provided'
    end
  end
end