Sha256: dd9e7eb98a342a1e2fa4288c8955594d5678d9d030e6adcb2237d32f80346a72

Contents?: true

Size: 751 Bytes

Versions: 1

Compression:

Stored size: 751 Bytes

Contents

require 'httparty'
require 'oga'

module Tessitura
  class ApiCall < Struct.new(:options)
    include HTTParty

    default_options.update(verify: false)

    def initialize(options = {})
      super(options)
      self.class.base_uri base_uri
    end

    # TODO: raise error when not found
    def performance(id)
      request_query = { 'iPerf_no' => id.to_s, 'iModeOfSale' => '10' }
      response = self.class.get(performance_detail_path, query: request_query)

      case response.code
      when 200 then Performance.new(response.body)
      else false
      end
    end

    private

    def base_uri
      options.fetch :base_uri
    end

    def performance_detail_path
      '/LiveAPI/Tessitura.asmx/GetPerformanceDetail'
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tessitura-0.1.0 lib/tessitura/api_call.rb