lib/sportradar/api/soccer/scoring.rb
module Sportradar
module Api
module Soccer
class Scoring < Data
attr_accessor :response, :api, :id, :home, :away, :scores
def initialize(data, **opts)
@api = opts[:api]
@match = opts[:match]
@scores = {}
@id = data['id']
update(data, **opts)
end
def update(data, source: nil, **opts)
# new_scores = case source
# when :box
# parse_from_box(data)
# when :timeline
# parse_from_timeline(data)
# when :summary
# parse_from_box(data)
# else
# if data['period'] || data['half']
# parse_from_timeline(data)
# elsif data['team']
# parse_from_box(data)
# else # schedule requests
# {}
# end
# end
new_scores = parse_from_timeline(data)
# parse data structure
# handle data from team (all periods)
# handle data from period (both teams)
# handle data from match?
@scores.each { |k, v| v.merge!(new_scores.delete(k) || {} ) }
new_scores.each { |k, v| @scores.merge!(k => v) }
end
def goals(team_id)
@score[team_id].to_i
end
private
def parse_from_timeline(data)
if data['period_scores']
data['period_scores'].map do |hash|
[hash["number"], {"home"=>hash['home_score'], "away"=>hash['away_score']}]
end.to_h
else
{}
end
end
# def period_name
# 'period'
# end
def parse_from_summary(data)
#
end
end
end
end
end