Class: RailsSignUp::Races
- Inherits:
-
Object
- Object
- RailsSignUp::Races
- Defined in:
- lib/railsSignUp/races.rb
Instance Attribute Summary collapse
-
#races ⇒ Object
Returns the value of attribute races.
Instance Method Summary collapse
-
#get_races(opts = {}) ⇒ Object
get races from runsignup.
-
#initialize(session) ⇒ Races
constructor
A new instance of Races.
- #parse_json(json_response, opts) ⇒ Object
Constructor Details
#initialize(session) ⇒ Races
Returns a new instance of Races.
8 9 10 11 12 13 14 15 |
# File 'lib/railsSignUp/races.rb', line 8 def initialize session raise RailsSignUp::SessionError, "Invalid session (session cannot be nil)" if session.nil? @races = [] @access_token = session.access_token @api_key = session.api_key @api_secret = session.api_secret end |
Instance Attribute Details
#races ⇒ Object
Returns the value of attribute races.
6 7 8 |
# File 'lib/railsSignUp/races.rb', line 6 def races @races end |
Instance Method Details
#get_races(opts = {}) ⇒ Object
get races from runsignup
param T/F appends affiliate token to end of string, default T param T/F shows events with each race, default F param T/F shows heading with each race, default F param T/F shows links of each race, default F param int specifies which page to return, default 1 param int specifies how many results to return per page, default 10 param specifies how to sort results (name or date, descending or ascending), default name+ASC param search race by name see runsignup api documentation for extra parameters
29 30 31 32 33 34 35 36 37 |
# File 'lib/railsSignUp/races.rb', line 29 def get_races opts = {} response = @access_token.get("/rest/races/?format=json&api_key=#{@api_key}&api_secret=#{@api_secret}&#{opts.map{|k, v| "#{k}=#{v}"}.join('&')}") json_response = JSON.parse(response.body) raise RailsSignUp::RaceError, "RunSignUp races.get Error: #{json_response['error']['error_code']} - #{json_response['error']['error_msg']}" unless json_response['error'].nil? self.races = parse_json json_response, opts unless json_response.nil? self.races end |
#parse_json(json_response, opts) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/railsSignUp/races.rb', line 39 def parse_json json_response, opts races = [] count = 0 return if json_response['races'].nil? json_response['races'].each do |race| _race = RailsSignUp::Model::Race.new( :access_token => @access_token, :api_key => @api_key, :api_secret => @api_secret, :id => race['race']['race_id'], :name => race['race']['name'], :description => race['race']['description'], :url => race['race']['url'], :next_date => race['race']['next_date'], :last_date => race['race']['last_date'], :is_registration_open => race['race']['is_registration_open'], :is_draft_race => race['race']['is_draft_race'], :street => race['race']['address']['street'], :city => race['race']['address']['city'], :state => race['race']['address']['state'], :zip_code => race['race']['address']['zip_code'], :country_code => race['race']['address']['country_code'] ) if !opts[:events].nil? && opts[:events] === "T" race['race']['events'].each do |event| _event = RailsSignUp::Model::Event.new( :id => event['id'], :name => event['name'], :details => event['details'], :start_time => event['start_time'], :registration_opens => event['registration_opens'], :event_type => event['event_type'], :distance => event['distance'], :volunteer => event['volunteer'], :require_dob => event['require_dob'], :require_phone => event['require_phone'], :give_away => event['give_away'] ) event['registration_periods'].each do |period| _period = RailsSignUp::Model::RegistrationPeriod.new( :registration_opens => period['registration_opens'], :registration_closes => period['registration_closes'], :race_fee => period['race_fee'] ) _event.add_registration_period _period end _race.add_event _event end end races << _race count = count + 1 break if !opts[:limit].nil? && count >= opts[:limit].to_i end races end |