class LeanplumApi::Connection
Constants
- LEANPLUM_API_PATH
Public Class Methods
new(client_key)
click to toggle source
# File lib/leanplum_api/connection.rb, line 5 def initialize(client_key) @client_key = client_key end
Public Instance Methods
get(query)
click to toggle source
# File lib/leanplum_api/connection.rb, line 9 def get(query) connection.get(LEANPLUM_API_PATH, query.merge(authentication_params)).body['response'] end
multi(payload)
click to toggle source
# File lib/leanplum_api/connection.rb, line 13 def multi(payload) connection.post("#{LEANPLUM_API_PATH}?#{authed_multi_param_string}") do |request| request.body = { data: payload } end.body['response'] end
multi_dev(payload)
click to toggle source
# File lib/leanplum_api/connection.rb, line 19 def multi_dev(payload) connection .post("#{LEANPLUM_API_PATH}?#{authed_multi_param_string}&#{URI.encode_www_form(payload)}") .body['response'] end
Private Instance Methods
authed_multi_param_string()
click to toggle source
# File lib/leanplum_api/connection.rb, line 58 def authed_multi_param_string params = authentication_params.merge(action: 'multi', time: Time.now.utc.strftime('%s')) params.merge!(devMode: true) if LeanplumApi.configuration.developer_mode URI.encode_www_form(params) end
authentication_params()
click to toggle source
# File lib/leanplum_api/connection.rb, line 27 def authentication_params { appId: LeanplumApi.configuration.app_id, clientKey: @client_key, apiVersion: LeanplumApi.configuration.api_version, devMode: LeanplumApi.configuration.developer_mode } end
connection()
click to toggle source
# File lib/leanplum_api/connection.rb, line 36 def connection fail 'APP_ID not configured!' unless LeanplumApi.configuration.app_id options = { url: 'https://www.leanplum.com', request: { timeout: LeanplumApi.configuration.timeout_seconds, open_timeout: LeanplumApi.configuration.timeout_seconds } } @connection ||= Faraday.new(options) do |connection| connection.request :leanplum_response_validation connection.request :json connection.response :logger, LeanplumApi.configuration.logger, bodies: true if LeanplumApi.configuration.api_debug connection.response :json, :content_type => /\bjson$/ connection.adapter Faraday.default_adapter end end