class UTApi::Client
Attributes
logged_in[R]
Public Class Methods
new(email, password, hash, platform)
click to toggle source
# File lib/utapi/client.rb, line 14 def initialize(email, password, hash, platform) @account = Account.new(email: email, password: password, hash: hash, platform: platform) @logged_in = false end
Public Instance Methods
auction_status(ids)
click to toggle source
# File lib/utapi/client.rb, line 37 def auction_status(ids) action = 'trade/status?' + Util.encode_query_string(tradeIds: ids.join(',')) do_request(action).tap do |response| raise ApiCallFailed, "response has no auctionInfo: #{response}" unless response.is_a?(Hash) and response.has_key?('auctionInfo') end end
bid(trade_id, value)
click to toggle source
# File lib/utapi/client.rb, line 47 def bid(trade_id, value) response = do_request("trade/#{trade_id}/bid", :put, {bid: value}) response.is_a?(Hash) and response.has_key?('auctionInfo') end
delete_from_trade_pile(trade_id)
click to toggle source
# File lib/utapi/client.rb, line 90 def delete_from_trade_pile(trade_id) do_request("trade/#{trade_id}", :delete) end
delete_from_watch_list(*trade_ids)
click to toggle source
# File lib/utapi/client.rb, line 94 def delete_from_watch_list(*trade_ids) action = 'watchlist?' + Util.encode_query_string(tradeId: trade_ids.join(',')) do_request(action, :delete) end
get_credits()
click to toggle source
# File lib/utapi/client.rb, line 99 def get_credits do_request('user/credits') end
list_item(item_id, start_price, bin_price, duration)
click to toggle source
# File lib/utapi/client.rb, line 53 def list_item(item_id, start_price, bin_price, duration) response = do_request('auctionhouse', :post, { startingBid: start_price, duration: duration, itemData: { id: item_id }, buyNowPrice: bin_price }) response.is_a?(Hash) and response.has_key?('id') end
login()
click to toggle source
# File lib/utapi/client.rb, line 19 def login @authorization = generate_authorization rescue LoginError false else true end
move_card(item_id, pile)
click to toggle source
# File lib/utapi/client.rb, line 67 def move_card(item_id, pile) response = do_request('item', :put, { itemData: [{ id: item_id, pile: pile }] }) response.is_a?(Hash) and response.has_key?('itemData') and response['itemData'][0]['success'] end
search(params)
click to toggle source
# File lib/utapi/client.rb, line 27 def search(params) action = 'transfermarket?' + Util.encode_query_string(params) do_request(action).tap do |response| raise ApiCallFailed, "response has no auctionInfo: #{response}" unless response.is_a?(Hash) and response.has_key?('auctionInfo') end end
trade_pile()
click to toggle source
# File lib/utapi/client.rb, line 76 def trade_pile do_request('tradepile', :get).tap do |response| raise ApiCallFailed, "Cannot get trade pile, response: #{response}" unless response.is_a?(Hash) and response.has_key?('auctionInfo') end end
unassigned_items()
click to toggle source
# File lib/utapi/client.rb, line 86 def unassigned_items do_request('purchased/items', :get) end
watch_list()
click to toggle source
# File lib/utapi/client.rb, line 82 def watch_list do_request('watchlist', :get) end
Private Instance Methods
connection()
click to toggle source
# File lib/utapi/client.rb, line 144 def connection @connection ||= Connection.new end
do_request(action, verb=:get, payload=nil)
click to toggle source
# File lib/utapi/client.rb, line 105 def do_request(action, verb=:get, payload=nil) retried = false begin headers = { 'Content-Type' => 'application/json', 'X-HTTP-Method-Override' => verb.to_s.upcase, 'X-UT-PHISHING-TOKEN' => authorization.phishing_token, 'X-UT-SID' => authorization.sid } response = connection.post("#{authorization.server}/ut/game/fifa14/#{action}", payload, headers) rescue NotLoggedInError @logged_in = false if !retried && login retried = true retry else raise end end response.env[:body] end