module SmtpcomApi::Request
Constants
- API_PATH
- FORMAT
- HTTP_METHODS
Public Instance Methods
method_missing(name, *args)
click to toggle source
Calls superclass method
# File lib/smtpcom_api/request.rb, line 13 def method_missing(name, *args) if HTTP_METHODS.include? name.to_sym key = args[0] params = args[1] || {} pl = params.delete(:pl) _call(name, get_url(key, pl), process_params(params)) else super end end
respond_to?(name)
click to toggle source
Calls superclass method
# File lib/smtpcom_api/request.rb, line 24 def respond_to?(name) if HTTP_METHODS.include? name.to_sym true else super end end
Private Instance Methods
_call(method, path, params)
click to toggle source
# File lib/smtpcom_api/request.rb, line 50 def _call(method, path, params) conn = Faraday.new do |c| c.request :url_encoded #c.response :logger c.response :json c.response :raise_error c.adapter :net_http end res = conn.send(method, path, params.merge({:api_key => @api_key})).body raise "Error #{res["code"]}: #{res["message"]}" unless res['code'] == 0 res end
get_path(key, pl)
click to toggle source
# File lib/smtpcom_api/request.rb, line 44 def get_path(key, pl) pl = [pl] unless pl.instance_of?(Array) pl.map!{|s| CGI.escape(s.to_s).gsub(/\./,'%2E')} Urls.const_get(key.to_s.upcase) % pl end
get_url(key, pl=[])
click to toggle source
# File lib/smtpcom_api/request.rb, line 40 def get_url(key, pl=[]) [@api_host, API_PATH, get_path(key, pl), ".#{FORMAT}"].join end
process_params(params)
click to toggle source
# File lib/smtpcom_api/request.rb, line 34 def process_params(params) params[:time_start] = params[:time_start].to_i if params[:time_start] params[:time_end] = params[:time_end].to_i if params[:time_end] params end