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 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?()
click to toggle source
# File lib/crowdin-api/core/request.rb, line 41 def patch? method.eql?(:patch) end
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
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? ? { params: fetch_cleared_params(params) } : fetch_cleared_params(params).to_json end