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