Class: ArcApi::Client

Inherits:
Footrest::Client
  • Object
show all
Includes:
HealthCheck, Media
Defined in:
lib/arc_api/client.rb,
lib/arc_api/client/media.rb,
lib/arc_api/client/health_check.rb

Defined Under Namespace

Modules: HealthCheck, Media

Constant Summary collapse

API_PATH =
'/api/public/v1'.freeze
MEDIA_PATH =
'/media'.freeze
UPLOADS_PATH =
'/uploads'.freeze
COMPLETE_PATH =
'/complete'.freeze
HEALTH_CHECK_PATH =
'/ping'.freeze

Instance Method Summary collapse

Methods included from HealthCheck

#health_check

Methods included from Media

#complete_media_upload, #create_media, #initiate_media_upload, #upload_file

Instance Method Details

#set_connection(config) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/arc_api/client.rb', line 16

def set_connection(config)
  config[:logger] = config[:logging] if config[:logging]
  raise 'No client prefix url provided - must provide prefix' if config[:prefix].nil? || config[:prefix].empty?
  @connection = Faraday.new(url: config[:prefix]) do |faraday|
    faraday.use                         Footrest::FollowRedirects, limit: 5 unless config[:follow_redirects] == false
    faraday.use                         Footrest::ParseJson, content_type: /\bjson$/
    faraday.use                         Footrest::RaiseFootrestErrors
    faraday.use                         Footrest::Pagination
    faraday.request                     :multipart
    faraday.request                     :url_encoded
    faraday.adapter                     Faraday.default_adapter

    if config[:logger] == true
      faraday.response :logger
    elsif config[:logger]
      faraday.use Faraday::Response::Logger, config[:logger]
    end

    faraday.headers[:accept] = 'application/json'
    faraday.headers[:user_agent]      = 'Footrest'
    if config[:token] && config[:user_id]
      faraday.headers[:authorization] =  "Bearer user_id=\"#{config[:user_id]}\", token=\"#{config[:token]}\""
    else
      raise 'No api authorization provided - must provide token and user_id'
    end
  end
end