Sha256: d9dd7af899399700e624921eb499c21a852f05d68e62b7488310023af87ab59c
Contents?: true
Size: 1.07 KB
Versions: 3
Compression:
Stored size: 1.07 KB
Contents
module Klaviyo API_ENDPOINT = 'https://a.klaviyo.com' class Client attr_reader :api_key, :conn, :token def initialize(api_key, token) @api_key = api_key @token = token @conn = Faraday.new( url: API_ENDPOINT, ssl: { ca_path: Klaviyo::DEFAULT_CA_BUNDLE_PATH } ) do |b| b.headers['Accept'] = 'application/json' b.request :url_encoded b.response :logger b.response :json, content_type: 'application/json' b.adapter Faraday.default_adapter end end def build_params(params = {}) options = params.merge( api_key: api_key, token: token ) { data: Base64.encode64(JSON.generate(options)).delete("\n") } end def invoke(resource, method, options = {}) constantize("klaviyo/#{resource}").send( method, options.merge(client: self) ) end private def constantize(class_name) Object.module_eval(class_name.to_s.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase }) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
parallel588-klaviyo-0.7.0 | lib/klaviyo/client.rb |
parallel588-klaviyo-0.6.0 | lib/klaviyo/client.rb |
parallel588-klaviyo-0.5.0 | lib/klaviyo/client.rb |