class CircuitApi::Resources::Base

Attributes

client[R]

Public Class Methods

new(client) click to toggle source
# File lib/circuit_api/resources/base.rb, line 6
def initialize(client)
  @client = client
end

Public Instance Methods

all(params = {}) click to toggle source
# File lib/circuit_api/resources/base.rb, line 19
def all(params = {})
  result = connection(api_resource, params).get
  response_to_object(result)
end
api_resource() click to toggle source
# File lib/circuit_api/resources/base.rb, line 10
def api_resource
  raise NotImplementedError
end
create(params) click to toggle source
# File lib/circuit_api/resources/base.rb, line 24
def create(params)
  result = connection(api_resource, params).post
  response_to_object(result)
end
delete(id, params = {}) click to toggle source
# File lib/circuit_api/resources/base.rb, line 34
def delete(id, params = {})
  result = connection("#{api_resource}/#{id}", params).delete
  response_to_object(result)
end
delete_all(params = {}) click to toggle source
# File lib/circuit_api/resources/base.rb, line 39
def delete_all(params = {})
  result = connection(api_resource, params).delete
  response_to_object(result)
end
find(id) click to toggle source
# File lib/circuit_api/resources/base.rb, line 14
def find(id)
  result = connection("#{api_resource}/#{id}").get
  response_to_object(result)
end
update(id, params) click to toggle source
# File lib/circuit_api/resources/base.rb, line 29
def update(id, params)
  result = connection("#{api_resource}/#{id}", params ).put
  response_to_object(result)
end

Protected Instance Methods

connection(resource_path, params = {}) click to toggle source
# File lib/circuit_api/resources/base.rb, line 46
def connection(resource_path, params = {})
  CircuitApi::Utils::Connection.new(
    client,
    resource_path,
    CircuitApi::Utils::Attributes.camelize_keys(params)
  )
end
handle_validation_errors(bad_request_error) click to toggle source
# File lib/circuit_api/resources/base.rb, line 72
def handle_validation_errors(bad_request_error)
  errors = bad_request_error.json_message['validationErrors']
  raise unless errors

  raise CircuitApi::ValidationError.new(errors, bad_request_error.uri)
end
response_to_object(response) click to toggle source
# File lib/circuit_api/resources/base.rb, line 54
def response_to_object(response)
  case response
  when Hash
    return nil if CircuitApi::Utils::Object.blank?(response)
    to_object(response)
  when Array
    response.map do |item|
      to_object(item)
    end
  end
end
to_object(values) click to toggle source
# File lib/circuit_api/resources/base.rb, line 66
def to_object(values)
  attributes = CircuitApi::Utils::Attributes.snake_keys(values)
  #binding.pry
  CircuitApi::Resource.new('foo', attributes)
end