beneggett/sportradar-api

View on GitHub
lib/sportradar/api/mma/event.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Sportradar
  module Api
    module Mma
      class Event < Data
        attr_accessor :response, :id, :name, :scheduled, :venue, :league

        def initialize(data, **opts)
          @response = data
          @api      = opts[:api]
          @fights_hash = {}
          @updated_at = Time.now

          @id         = response['id']
          @name       = response['name']
          update(data)
        end

        def fights
          @fights_hash.values
        end

        def update(data)
          @scheduled  = Time.parse(data["scheduled"])                     if data["scheduled"]
          @venue      = Venue.new(data['venue'], event: self, api: api)   if data['venue']
          @league     = League.new(data['league'], event: self, api: api) if data['league']
          update_fights(data)

          self
        end

        def update_fights(data)
          return if String === data['fights']
          create_data(@fights_hash, data.dig('fights', 'fight'), klass: Fight, api: api, event: self)
        end


        def path_base
          "events/#{ id }"
        end
        def path_stats
          "#{ path_base }/summary"
        end
        # def path_pbp
        #   "#{ path_base }/pbp"
        # end

        def get_stats
          res = api.get_data(path_stats)
          data = res['summary']
          @updated_at = data['generated']
          update(data.dig('events', 'event'))
          res
        end

        def api
          @api ||= Sportradar::Api::Mma.new
        end


        # def get_pbp
        #   data = api.get_data(path_pbp)['game']
        #   update(data)
        #   @quarter = data['quarter'].first
        #   @pbp = set_pbp(data['quarter'][1..-1])
        # end

        # def set_pbp(data)
        #   @quarters = parse_into_array_with_options(selector: data, klass: self.parent::Quarter, api: api, game: self)
        #   @plays  = nil # to clear empty array empty
        #   @quarters
        # end

        KEYS_SCHED = ["id", "name", "scheduled", "venue", "league", "fights"]

      end
    end
  end
end

__END__

m = Sportradar::Api::Mma.new
sc = m.schedule;
e = sc.events.sample;
e = sc.events.first;
e = sc.events.last;



m = Sportradar::Api::Mma.new
sr = m.participants;
e = sc.events.sample;
f = sr.fighters.sample;
f.fights.size
sc = m.schedule;
f.fights.size
f.fights.first
f.fights.first.event


event_hash = {"id"=>"f7c80a91-c6e7-4636-a5ec-62e59ca0afab" }
e = Sportradar::Api::Mma::Event.new(event_hash)
e.get_stats;
e

event_hash = {"id"=>"8f85ecc5-0d4d-470b-b357-075cc7e7bedd" } # => UFC 205 - McGregor/Alvarez
e = Sportradar::Api::Mma::Event.new(event_hash)
res = e.get_stats;
f = e.fights.last.result
f.scores