class Vaultoro::TradingAPI::Buy
Public Instance Methods
execute!()
click to toggle source
# File lib/vaultoro/trading_api/buy.rb, line 12 def execute! ensure_attribute_has_value :symbol, :type @errors << ":bitcoin or :gold argument is required" unless @bitcoin || @gold @errors << ":symbol argument must be 'gold'" unless @symbol == 'gold' @errors << ":type argument must be 'limit' or 'market'" unless ['limit', 'market'].include?(@type) return false if @errors.any? params = {} params.merge!(btc: @bitcoin) if @bitcoin params.merge!(gld: @gold) if @gold params.merge!(price: @price) if @price && @type == 'market' response = Client.post("/buy/#{@symbol}/#{@type}", params) code = response.code rescue "" case code when '200' hash = JSON.parse(response.body) @status = hash['status'].upcase if @status == 'SUCCESS' @order_id = hash['data']['Order_ID'] @order_time = DateTime.strptime(hash['data']['time'], '%Y-%m-%dT%H:%M:%S.%L%z').to_time.utc else set_errors(response) return false end return true else set_errors(response) return false end end