module SendGrid4r::REST::Request
Constants
- BASE_URL
Public Instance Methods
create_args(method, auth, endpoint, params, payload)
click to toggle source
# File lib/sendgrid4r/rest/request.rb, line 42 def create_args(method, auth, endpoint, params, payload) args = {} args[:method] = method args[:url] = process_url_params(endpoint, params) headers = {} headers[:content_type] = :json # Added for Campaign API headers['Accept-Encoding'] = 'plain' # if !auth.api_key.nil? headers[:authorization] = "Bearer #{auth.api_key}" else args[:user] = auth.username args[:password] = auth.password end args[:headers] = headers args[:payload] = payload.to_json unless payload.nil? args end
delete(auth, endpoint, params = nil, payload = nil, &block)
click to toggle source
# File lib/sendgrid4r/rest/request.rb, line 29 def delete(auth, endpoint, params = nil, payload = nil, &block) execute(:delete, auth, endpoint, params, payload, &block) end
execute(method, auth, endpoint, params, payload, &block)
click to toggle source
# File lib/sendgrid4r/rest/request.rb, line 33 def execute(method, auth, endpoint, params, payload, &block) args = create_args(method, auth, endpoint, params, payload) RestClient::Request.execute(args, &block) rescue RestClient::TooManyRequests => e duration = e.response.headers[:x_ratelimit_remaining].to_i sleep duration if duration > 0 retry end
finish(resp, raw_resp = false) { |parse| ... }
click to toggle source
# File lib/sendgrid4r/rest/request.rb, line 81 def finish(resp, raw_resp = false) return resp if raw_resp || resp.nil? || resp.length < 2 yield(JSON.parse(resp)) end
get(auth, endpoint, params = nil, payload = nil, &block)
click to toggle source
# File lib/sendgrid4r/rest/request.rb, line 13 def get(auth, endpoint, params = nil, payload = nil, &block) execute(:get, auth, endpoint, params, payload, &block) end
patch(auth, endpoint, payload, &block)
click to toggle source
# File lib/sendgrid4r/rest/request.rb, line 21 def patch(auth, endpoint, payload, &block) execute(:patch, auth, endpoint, nil, payload, &block) end
post(auth, endpoint, payload = nil, &block)
click to toggle source
# File lib/sendgrid4r/rest/request.rb, line 17 def post(auth, endpoint, payload = nil, &block) execute(:post, auth, endpoint, nil, payload, &block) end
process_array_params(v)
click to toggle source
# File lib/sendgrid4r/rest/request.rb, line 77 def process_array_params(v) v.is_a?(Array) ? v.join(',') : v.to_s end
process_url_params(endpoint, params)
click to toggle source
# File lib/sendgrid4r/rest/request.rb, line 62 def process_url_params(endpoint, params) return endpoint if params.nil? || params.empty? if params.is_a?(Array) ary_params = params elsif params.is_a?(Hash) ary_params = [params] end query_string = ary_params.collect do |hash| hash.collect do |k, v| "#{k}=#{CGI.escape(process_array_params(v))}" end.join('&') end.join('&') "#{endpoint}?#{query_string}" end
put(auth, endpoint, payload, &block)
click to toggle source
# File lib/sendgrid4r/rest/request.rb, line 25 def put(auth, endpoint, payload, &block) execute(:put, auth, endpoint, nil, payload, &block) end