class Crowdin::Web::Request

Attributes

connection[R]
method[R]
payload[R]

Public Class Methods

new(connection, method, url, payload = {}) click to toggle source
# File lib/crowdin-api/core/request.rb, line 10
def initialize(connection, method, url, payload = {})
  @connection = connection[url]
  @method     = method
  @payload    = build_payload(payload)
end

Public Instance Methods

delete() click to toggle source
# File lib/crowdin-api/core/request.rb, line 28
def delete
  connection.delete(prepare_payload(payload[:params]))
end
delete?() click to toggle source
# File lib/crowdin-api/core/request.rb, line 24
def delete?
  method.eql?(:delete)
end
get() click to toggle source
# File lib/crowdin-api/core/request.rb, line 20
def get
  connection.get(prepare_payload(payload[:params]))
end
get?() click to toggle source
# File lib/crowdin-api/core/request.rb, line 16
def get?
  method.eql?(:get)
end
patch()
Alias for: process_with_body
patch?() click to toggle source
# File lib/crowdin-api/core/request.rb, line 41
def patch?
  method.eql?(:patch)
end
post()
Alias for: process_with_body
post?() click to toggle source
# File lib/crowdin-api/core/request.rb, line 36
def post?
  method.eql?(:post)
end
process_with_body() click to toggle source
# File lib/crowdin-api/core/request.rb, line 32
def process_with_body
  connection.send(method, prepare_payload(payload[:params]), payload[:headers]) { |response, _, _| response }
end
Also aliased as: post, patch, put
put()
Alias for: process_with_body
put?() click to toggle source
# File lib/crowdin-api/core/request.rb, line 46
def put?
  method.eql?(:put)
end

Private Instance Methods

build_payload(payload) click to toggle source
# File lib/crowdin-api/core/request.rb, line 53
def build_payload(payload)
  %i[params headers].each do |key|
    payload[key] ||= {}
  end
  payload
end
fetch_cleared_params(params) click to toggle source
# File lib/crowdin-api/core/request.rb, line 66
def fetch_cleared_params(params)
  case params
  when Array
    params.map { |el| el.reject { |_, value| value.nil? } }.reject(&:empty?)
  when Hash
    params.reject { |_, value| value.nil? }
  else
    params
  end
end
prepare_payload(params) click to toggle source
# File lib/crowdin-api/core/request.rb, line 60
def prepare_payload(params)
  return params if params.is_a?(File)

  get? || delete? ? { params: fetch_cleared_params(params) } : fetch_cleared_params(params).to_json
end