class IdentityCRM::Resource

Public Class Methods

new(url, user, token) click to toggle source
# File lib/identity_crm/resource.rb, line 2
def initialize url, user, token
  @url = url.chomp('/')
  @user = user
  @token = token
end

Public Instance Methods

create(params: {}) click to toggle source
# File lib/identity_crm/resource.rb, line 8
def create params: {}, options: {}
  request :post, body: params, options: options
end
get(id = nil, params: {}) click to toggle source
# File lib/identity_crm/resource.rb, line 12
def get id = nil, params: {}, options: {}
  request :get, path: id.to_s, query: params, options: options
end

Private Instance Methods

request(method, path: '', query: {}) click to toggle source
# File lib/identity_crm/resource.rb, line 18
def request method, path: '', query: {}, options: {}, body: nil
  url = @url
  if path.present?
    url += '/' + path
  end

  request = {
    method: method,
    url: url,
    user: @user,
    password: @token,
    headers: {
      params: query,
    },
  }
  if body.present?
    request[:payload] = body.as_json
    request[:content_type] = :json
  end

  if options.include? :timeout
    request[:timeout] = options[:timeout]
  end

  JSON.parse RestClient::Request.execute(request).body, object_class: OpenStruct
end