class Perpetto::API

Public Class Methods

new(account_id, secret) click to toggle source
# File lib/perpetto/api.rb, line 8
def initialize(account_id, secret)
  @account_id = account_id
  @secret = secret
end

Public Instance Methods

cart_paid(cart_id) click to toggle source
# File lib/perpetto/api.rb, line 25
def cart_paid(cart_id)
  post('backend_track/cart_paid', {cart_id: cart_id})
end
delete_profile_data(email) click to toggle source
# File lib/perpetto/api.rb, line 45
def delete_profile_data(email)
  post('backend_action/delete_profile', {email: email})
end
delete_store_data() click to toggle source
# File lib/perpetto/api.rb, line 41
def delete_store_data
  post('backend_action/delete_domain')
end
get_campaigns() click to toggle source
# File lib/perpetto/api.rb, line 21
def get_campaigns
  get('info/campaigns')
end
get_containers() click to toggle source
# File lib/perpetto/api.rb, line 17
def get_containers
  get('info/containers')
end
get_shop_info() click to toggle source
# File lib/perpetto/api.rb, line 13
def get_shop_info
  get('')
end
item_updated(item_id, item_hash) click to toggle source
# File lib/perpetto/api.rb, line 33
def item_updated(item_id, item_hash)
  post('backend_track/items_updated', {items: {item_id => item_hash}})
end
order_voided(cart_id) click to toggle source
# File lib/perpetto/api.rb, line 29
def order_voided(cart_id)
  post('backend_track/order_voided', {cart_id: cart_id})
end
profile_info(email) click to toggle source
# File lib/perpetto/api.rb, line 37
def profile_info(email)
  get("info/profile", {email: email})
end

Private Instance Methods

api_url(path, params = {}) click to toggle source
# File lib/perpetto/api.rb, line 68
def api_url(path, params = {})
  uri = URI("https://#{@account_id}.api.perpetto.com/v3/#{path}")
  uri.query = URI.encode_www_form(params.merge(secret: @secret))
  uri.to_s
end
decode_and_check_response(response) click to toggle source
# File lib/perpetto/api.rb, line 60
def decode_and_check_response(response)
  response_hash = JSON.parse(response.body)
  puts "Perpetto response: #{response_hash}"
  raise "Perpetto API returned error: #{response_hash['error']}" if response_hash['status'] == 'error'
  response_hash['data']
end
get(path, params = {}) click to toggle source
# File lib/perpetto/api.rb, line 50
def get(path, params = {})
  response = HTTParty.get(api_url(path, params))
  decode_and_check_response(response)
end
post(path, body = {}) click to toggle source
# File lib/perpetto/api.rb, line 55
def post(path, body = {})
  response = HTTParty.post(api_url(path), body: body.to_json, headers: {'Content-Type' => 'application/json' })
  decode_and_check_response(response)
end