Module: Reloop::Support::Parameters

Defined in:
lib/reloop/support/parameters.rb

Constant Summary collapse

REQUEST_KEY_MAP =
{
  "first_name" => "firstName",
  "last_name" => "lastName",
  "group_ids" => "groupIds",
  "group_id" => "groupId",
  "fallback_value" => "fallbackValue",
  "default_subscription" => "defaultSubscription",
  "channel_id" => "channelId",
  "property_name" => "propertyName",
  "property_type" => "propertyType",
  "contact_id" => "contactId",
  "rate_limit_enabled" => "rateLimitEnabled",
  "user_id" => "userId",
}.freeze

Class Method Summary collapse

Class Method Details

.for_query(options) ⇒ Object



43
44
45
# File 'lib/reloop/support/parameters.rb', line 43

def self.for_query(options)
  for_request(options)
end

.for_request(params) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/reloop/support/parameters.rb', line 27

def self.for_request(params)
  normalized = {}

  params.each do |key, value|
    if key.to_s == "unsubscribed"
      normalized["status"] = value ? "unsubscribed" : "subscribed" unless params.key?(:status) || params.key?("status")
      next
    end

    api_key = REQUEST_KEY_MAP[key.to_s] || to_camel_case(key.to_s)
    normalized[api_key] = normalize_value(value, for_request: true)
  end

  normalized.reject { |_, v| v.nil? }
end

.for_snake_request(params) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/reloop/support/parameters.rb', line 19

def self.for_snake_request(params)
  params.each_with_object({}) do |(key, value), normalized|
    next if value.nil?

    normalized[key.to_s] = value
  end
end