class ActiveCampaignRb::Faraday::Middleware::Request
Gem specific request middleware for Faraday
@author Mikael Henriksson <mikael@mhenrixon.com>
Public Class Methods
new(app, headers)
click to toggle source
Calls superclass method
# File lib/active_campaign_rb/faraday/middleware/request.rb, line 18 def initialize(app, headers) super(app) @headers = headers end
Public Instance Methods
call(env)
click to toggle source
# File lib/active_campaign_rb/faraday/middleware/request.rb, line 23 def call(env) case env.method when :post, :patch, :put normalize_body(env) end env[:request_headers].merge!(@headers) @app.call(env) end
logger()
click to toggle source
# File lib/active_campaign_rb/faraday/middleware/request.rb, line 49 def logger @logger ||= Logger.new($stdout) end
normalize_body(env)
click to toggle source
# File lib/active_campaign_rb/faraday/middleware/request.rb, line 34 def normalize_body(env) body = env[:request_body] if body.is_a?(Array) body = transform_array(body.flatten, :camelcase, :lower) elsif body.key?(:group) logger.debug("Using body as is because group #{body}") elsif body.key?(:list) logger.debug("Using body as is because list #{body}") else body = transform_keys(body, :camelcase, :lower) end env[:request_body] = ::Oj.dump(body, mode: :compat) end