class ShutterstockRuby::Connections

Attributes

configuration[R]

Public Class Methods

new(configuration) click to toggle source
# File lib/shutterstock-ruby/connections.rb, line 5
def initialize(configuration)
  @configuration = configuration
end

Protected Class Methods

client() click to toggle source
# File lib/shutterstock-ruby/connections.rb, line 28
def self.client
  @client ||= new(ShutterstockRuby.configuration)
end

Public Instance Methods

get(path, params = nil, options = {}) click to toggle source
# File lib/shutterstock-ruby/connections.rb, line 9
def get(path, params = nil, options = {})
  ensure_credentials!

  options = { accept: :json }.merge(options)
  options[:params] = params unless params.nil?

  RestClient.get(build_url(path), add_bearer(options))
end
post(path, body, params = nil, options = {}) click to toggle source
# File lib/shutterstock-ruby/connections.rb, line 18
def post(path, body, params = nil, options = {})
  ensure_credentials!

  options[:params] = params unless params.nil?
  options[:content_type] = "application/json"

  RestClient.post(build_url(path), body, add_bearer(options))
end

Private Instance Methods

add_bearer(options) click to toggle source
# File lib/shutterstock-ruby/connections.rb, line 42
def add_bearer(options)
  options[:authorization] = "Bearer #{configuration.access_token}" if configuration.access_token
  options
end
build_url(path) click to toggle source
# File lib/shutterstock-ruby/connections.rb, line 34
def build_url(path)
  if configuration.access_token
    "https://#{ShutterstockRuby::API_BASE}#{path}"
  else
    "https://#{configuration.api_client}:#{configuration.api_secret}@#{ShutterstockRuby::API_BASE}#{path}"
  end
end
ensure_credentials!() click to toggle source
# File lib/shutterstock-ruby/connections.rb, line 47
def ensure_credentials!
  fail(Exception, 'Missing credentials') if (configuration.api_client.nil? || configuration.api_secret.nil?) && configuration.access_token.nil?
end