class Fosdick::Receiver
Public Class Methods
new(end_point, request_options={})
click to toggle source
# File lib/fosdick/receiver.rb, line 7 def initialize(end_point, request_options={}) @end_point = end_point @request_options = request_options end
Public Instance Methods
call_api(fosdick_options)
click to toggle source
# File lib/fosdick/receiver.rb, line 12 def call_api(fosdick_options) fetch_data(@end_point, fosdick_options) end
Private Instance Methods
api_url(end_point)
click to toggle source
# File lib/fosdick/receiver.rb, line 30 def api_url(end_point) "https://www.customerstatus.com/fosdickapi/#{end_point}?#{ { }.merge(@request_options).to_query }" end
fetch_data(end_point, options={})
click to toggle source
# File lib/fosdick/receiver.rb, line 18 def fetch_data(end_point, options={}) # required sleep 2 sec for Fosdick API sleep 2 response = request(end_point, options) # process only valid to JSON.parse data begin response.nil? ? nil : JSON.parse(response.body) rescue JSON::ParserError nil end end
request(end_point, options={})
click to toggle source
# File lib/fosdick/receiver.rb, line 34 def request(end_point, options={}) uri = URI(api_url(end_point)) Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https', verify_mode: OpenSSL::SSL::VERIFY_NONE) do |http| request = Net::HTTP::Get.new uri.request_uri request['Accept'] = 'application/json' request.basic_auth(options['basic_auth']['login'], options['basic_auth']['password']) if options['basic_auth'].present? http.request request end end