class StubHubApi::Base
Attributes
sandbox[R]
token[R]
Public Class Methods
new(token:, sandbox:)
click to toggle source
# File lib/stub_hub_api/base.rb, line 5 def initialize(token:, sandbox:) @token = token @sandbox = sandbox end
Public Instance Methods
delete_query_api(url)
click to toggle source
# File lib/stub_hub_api/base.rb, line 45 def delete_query_api url session.delete(make_request_url(url, {})).body end
get_query_api(url, options)
click to toggle source
# File lib/stub_hub_api/base.rb, line 10 def get_query_api url, options session.get(make_request_url(url, options)).body end
post_multi_part_query_api(url, options, file)
click to toggle source
# File lib/stub_hub_api/base.rb, line 35 def post_multi_part_query_api url, options, file session.post do |req| req.url make_request_url(url, options) req.headers['Content-Type'] = 'multipart/form-data' req.body = {} req.body[:file] = Faraday::UploadIO.new(file, 'application/pdf', "#{Time.now.to_i * rand(1000)}.pdf") req.options.timeout = 2000 end.body end
post_multi_pdfs_json_query_api(url, body)
click to toggle source
# File lib/stub_hub_api/base.rb, line 26 def post_multi_pdfs_json_query_api url, body session.post do |req| req.url url req.headers["Content-Type"] = 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' req.body = body req.options.timeout = 2000 end.body end
post_query_api(url, payload = false, options)
click to toggle source
# File lib/stub_hub_api/base.rb, line 14 def post_query_api url, payload = false, options if payload session.post do |req| req.url url req.headers['Content-Type'] = 'application/json' req.body = options.to_json end.body else session.post(url, builder_options(options)).body end end
put_query_api(url, payload = false, options)
click to toggle source
# File lib/stub_hub_api/base.rb, line 49 def put_query_api url, payload = false, options if payload session.put do |req| req.url url req.headers['Content-Type'] = 'application/json' req.body = options.to_json end.body else session.put(url, builder_options(options)).body end end
Private Instance Methods
base_url()
click to toggle source
# File lib/stub_hub_api/base.rb, line 80 def base_url 'https://api.stubhub.com' end
builder_options(options)
click to toggle source
# File lib/stub_hub_api/base.rb, line 92 def builder_options options options.any? ? "?#{to_query(options)}" : '' end
current_base_url()
click to toggle source
# File lib/stub_hub_api/base.rb, line 84 def current_base_url sandbox ? sandbox_base_url : base_url end
folder_log()
click to toggle source
# File lib/stub_hub_api/base.rb, line 63 def folder_log folder_path = "#{ENV['HOME']}/loggers/sh" unless File.exists?(folder_path) system "mkdir -p #{folder_path}" end folder_path end
logger()
click to toggle source
# File lib/stub_hub_api/base.rb, line 71 def logger log_file = File.open("#{folder_log}/#{Time.now.strftime('%Y-%m-%d')}.log",'a+') @logger = ::Logger.new(log_file) end
make_request_url(url, options)
click to toggle source
# File lib/stub_hub_api/base.rb, line 88 def make_request_url url, options "#{url}#{builder_options(options)}" end
sandbox_base_url()
click to toggle source
# File lib/stub_hub_api/base.rb, line 76 def sandbox_base_url 'https://api.stubhubsandbox.com' end
session()
click to toggle source
# File lib/stub_hub_api/base.rb, line 106 def session return @connection if @connection @connection = ::Faraday.new current_base_url, ssl: {verify: false} do |conn| conn.use Faraday::Response::StubHub conn.use Faraday::Response::StubHubCustomLogger, logger conn.request :url_encoded conn.request :multipart conn.adapter Faraday.default_adapter end @connection.headers[:user_agent] = user_agents.shuffle.first @connection.authorization :Bearer, token @connection end
to_query(options)
click to toggle source
# File lib/stub_hub_api/base.rb, line 96 def to_query(options) Faraday::Utils.build_nested_query(options) end
user_agents()
click to toggle source
# File lib/stub_hub_api/base.rb, line 100 def user_agents ["Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (FM Scene 4.6.1) ", "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729) (Prevx 3.0.5) ", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36"] end