sports-odds-api 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.ignore +2 -0
- data/CHANGELOG.md +10 -0
- data/README.md +186 -0
- data/SECURITY.md +27 -0
- data/lib/sports_odds_api/client.rb +112 -0
- data/lib/sports_odds_api/errors.rb +228 -0
- data/lib/sports_odds_api/file_part.rb +55 -0
- data/lib/sports_odds_api/internal/next_cursor_page.rb +86 -0
- data/lib/sports_odds_api/internal/transport/base_client.rb +580 -0
- data/lib/sports_odds_api/internal/transport/pooled_net_requester.rb +201 -0
- data/lib/sports_odds_api/internal/type/array_of.rb +168 -0
- data/lib/sports_odds_api/internal/type/base_model.rb +534 -0
- data/lib/sports_odds_api/internal/type/base_page.rb +55 -0
- data/lib/sports_odds_api/internal/type/boolean.rb +77 -0
- data/lib/sports_odds_api/internal/type/converter.rb +327 -0
- data/lib/sports_odds_api/internal/type/enum.rb +131 -0
- data/lib/sports_odds_api/internal/type/file_input.rb +108 -0
- data/lib/sports_odds_api/internal/type/hash_of.rb +188 -0
- data/lib/sports_odds_api/internal/type/request_parameters.rb +42 -0
- data/lib/sports_odds_api/internal/type/union.rb +243 -0
- data/lib/sports_odds_api/internal/type/unknown.rb +81 -0
- data/lib/sports_odds_api/internal/util.rb +914 -0
- data/lib/sports_odds_api/internal.rb +20 -0
- data/lib/sports_odds_api/models/account_get_usage_params.rb +14 -0
- data/lib/sports_odds_api/models/account_usage.rb +91 -0
- data/lib/sports_odds_api/models/event.rb +686 -0
- data/lib/sports_odds_api/models/event_get_params.rb +195 -0
- data/lib/sports_odds_api/models/league.rb +39 -0
- data/lib/sports_odds_api/models/league_get_params.rb +30 -0
- data/lib/sports_odds_api/models/league_get_response.rb +8 -0
- data/lib/sports_odds_api/models/player.rb +128 -0
- data/lib/sports_odds_api/models/player_get_params.rb +58 -0
- data/lib/sports_odds_api/models/rate_limit_interval.rb +92 -0
- data/lib/sports_odds_api/models/sport.rb +197 -0
- data/lib/sports_odds_api/models/sport_get_params.rb +14 -0
- data/lib/sports_odds_api/models/sport_get_response.rb +8 -0
- data/lib/sports_odds_api/models/stat.rb +144 -0
- data/lib/sports_odds_api/models/stat_get_params.rb +43 -0
- data/lib/sports_odds_api/models/stat_get_response.rb +8 -0
- data/lib/sports_odds_api/models/stream_events_params.rb +38 -0
- data/lib/sports_odds_api/models/stream_events_response.rb +120 -0
- data/lib/sports_odds_api/models/team.rb +162 -0
- data/lib/sports_odds_api/models/team_get_params.rb +58 -0
- data/lib/sports_odds_api/models.rb +76 -0
- data/lib/sports_odds_api/request_options.rb +78 -0
- data/lib/sports_odds_api/resources/account.rb +33 -0
- data/lib/sports_odds_api/resources/events.rb +94 -0
- data/lib/sports_odds_api/resources/leagues.rb +39 -0
- data/lib/sports_odds_api/resources/players.rb +48 -0
- data/lib/sports_odds_api/resources/sports.rb +33 -0
- data/lib/sports_odds_api/resources/stats.rb +44 -0
- data/lib/sports_odds_api/resources/stream.rb +40 -0
- data/lib/sports_odds_api/resources/teams.rb +48 -0
- data/lib/sports_odds_api/version.rb +5 -0
- data/lib/sports_odds_api.rb +82 -0
- data/manifest.yaml +15 -0
- data/rbi/sports_odds_api/client.rbi +83 -0
- data/rbi/sports_odds_api/errors.rbi +205 -0
- data/rbi/sports_odds_api/file_part.rbi +37 -0
- data/rbi/sports_odds_api/internal/next_cursor_page.rbi +22 -0
- data/rbi/sports_odds_api/internal/transport/base_client.rbi +305 -0
- data/rbi/sports_odds_api/internal/transport/pooled_net_requester.rbi +80 -0
- data/rbi/sports_odds_api/internal/type/array_of.rbi +104 -0
- data/rbi/sports_odds_api/internal/type/base_model.rbi +310 -0
- data/rbi/sports_odds_api/internal/type/base_page.rbi +43 -0
- data/rbi/sports_odds_api/internal/type/boolean.rbi +58 -0
- data/rbi/sports_odds_api/internal/type/converter.rbi +225 -0
- data/rbi/sports_odds_api/internal/type/enum.rbi +82 -0
- data/rbi/sports_odds_api/internal/type/file_input.rbi +59 -0
- data/rbi/sports_odds_api/internal/type/hash_of.rbi +104 -0
- data/rbi/sports_odds_api/internal/type/request_parameters.rbi +31 -0
- data/rbi/sports_odds_api/internal/type/union.rbi +128 -0
- data/rbi/sports_odds_api/internal/type/unknown.rbi +58 -0
- data/rbi/sports_odds_api/internal/util.rbi +487 -0
- data/rbi/sports_odds_api/internal.rbi +18 -0
- data/rbi/sports_odds_api/models/account_get_usage_params.rbi +32 -0
- data/rbi/sports_odds_api/models/account_usage.rbi +173 -0
- data/rbi/sports_odds_api/models/event.rbi +1269 -0
- data/rbi/sports_odds_api/models/event_get_params.rbi +286 -0
- data/rbi/sports_odds_api/models/league.rbi +74 -0
- data/rbi/sports_odds_api/models/league_get_params.rbi +60 -0
- data/rbi/sports_odds_api/models/league_get_response.rbi +11 -0
- data/rbi/sports_odds_api/models/player.rbi +247 -0
- data/rbi/sports_odds_api/models/player_get_params.rbi +95 -0
- data/rbi/sports_odds_api/models/rate_limit_interval.rbi +176 -0
- data/rbi/sports_odds_api/models/sport.rbi +371 -0
- data/rbi/sports_odds_api/models/sport_get_params.rbi +29 -0
- data/rbi/sports_odds_api/models/sport_get_response.rbi +11 -0
- data/rbi/sports_odds_api/models/stat.rbi +273 -0
- data/rbi/sports_odds_api/models/stat_get_params.rbi +72 -0
- data/rbi/sports_odds_api/models/stat_get_response.rbi +11 -0
- data/rbi/sports_odds_api/models/stream_events_params.rbi +71 -0
- data/rbi/sports_odds_api/models/stream_events_response.rbi +247 -0
- data/rbi/sports_odds_api/models/team.rbi +305 -0
- data/rbi/sports_odds_api/models/team_get_params.rbi +92 -0
- data/rbi/sports_odds_api/models.rbi +35 -0
- data/rbi/sports_odds_api/request_options.rbi +59 -0
- data/rbi/sports_odds_api/resources/account.rbi +21 -0
- data/rbi/sports_odds_api/resources/events.rbi +96 -0
- data/rbi/sports_odds_api/resources/leagues.rbi +29 -0
- data/rbi/sports_odds_api/resources/players.rbi +41 -0
- data/rbi/sports_odds_api/resources/sports.rbi +21 -0
- data/rbi/sports_odds_api/resources/stats.rbi +34 -0
- data/rbi/sports_odds_api/resources/stream.rbi +32 -0
- data/rbi/sports_odds_api/resources/teams.rbi +39 -0
- data/rbi/sports_odds_api/version.rbi +5 -0
- data/sig/sports_odds_api/client.rbs +45 -0
- data/sig/sports_odds_api/errors.rbs +117 -0
- data/sig/sports_odds_api/file_part.rbs +21 -0
- data/sig/sports_odds_api/internal/next_cursor_page.rbs +13 -0
- data/sig/sports_odds_api/internal/transport/base_client.rbs +133 -0
- data/sig/sports_odds_api/internal/transport/pooled_net_requester.rbs +45 -0
- data/sig/sports_odds_api/internal/type/array_of.rbs +48 -0
- data/sig/sports_odds_api/internal/type/base_model.rbs +104 -0
- data/sig/sports_odds_api/internal/type/base_page.rbs +24 -0
- data/sig/sports_odds_api/internal/type/boolean.rbs +26 -0
- data/sig/sports_odds_api/internal/type/converter.rbs +79 -0
- data/sig/sports_odds_api/internal/type/enum.rbs +32 -0
- data/sig/sports_odds_api/internal/type/file_input.rbs +25 -0
- data/sig/sports_odds_api/internal/type/hash_of.rbs +48 -0
- data/sig/sports_odds_api/internal/type/request_parameters.rbs +19 -0
- data/sig/sports_odds_api/internal/type/union.rbs +52 -0
- data/sig/sports_odds_api/internal/type/unknown.rbs +26 -0
- data/sig/sports_odds_api/internal/util.rbs +185 -0
- data/sig/sports_odds_api/internal.rbs +10 -0
- data/sig/sports_odds_api/models/account_get_usage_params.rbs +15 -0
- data/sig/sports_odds_api/models/account_usage.rbs +116 -0
- data/sig/sports_odds_api/models/event.rbs +860 -0
- data/sig/sports_odds_api/models/event_get_params.rbs +168 -0
- data/sig/sports_odds_api/models/league.rbs +50 -0
- data/sig/sports_odds_api/models/league_get_params.rbs +32 -0
- data/sig/sports_odds_api/models/league_get_response.rbs +7 -0
- data/sig/sports_odds_api/models/player.rbs +162 -0
- data/sig/sports_odds_api/models/player_get_params.rbs +56 -0
- data/sig/sports_odds_api/models/rate_limit_interval.rbs +67 -0
- data/sig/sports_odds_api/models/sport.rbs +241 -0
- data/sig/sports_odds_api/models/sport_get_params.rbs +15 -0
- data/sig/sports_odds_api/models/sport_get_response.rbs +7 -0
- data/sig/sports_odds_api/models/stat.rbs +166 -0
- data/sig/sports_odds_api/models/stat_get_params.rbs +38 -0
- data/sig/sports_odds_api/models/stat_get_response.rbs +7 -0
- data/sig/sports_odds_api/models/stream_events_params.rbs +38 -0
- data/sig/sports_odds_api/models/stream_events_response.rbs +151 -0
- data/sig/sports_odds_api/models/team.rbs +201 -0
- data/sig/sports_odds_api/models/team_get_params.rbs +56 -0
- data/sig/sports_odds_api/models.rbs +33 -0
- data/sig/sports_odds_api/request_options.rbs +36 -0
- data/sig/sports_odds_api/resources/account.rbs +11 -0
- data/sig/sports_odds_api/resources/events.rbs +32 -0
- data/sig/sports_odds_api/resources/leagues.rbs +13 -0
- data/sig/sports_odds_api/resources/players.rbs +16 -0
- data/sig/sports_odds_api/resources/sports.rbs +11 -0
- data/sig/sports_odds_api/resources/stats.rbs +14 -0
- data/sig/sports_odds_api/resources/stream.rbs +14 -0
- data/sig/sports_odds_api/resources/teams.rbs +16 -0
- data/sig/sports_odds_api/version.rbs +3 -0
- metadata +215 -0
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SportsOddsAPI
|
|
4
|
+
module Models
|
|
5
|
+
# @see SportsOddsAPI::Resources::Teams#get
|
|
6
|
+
class Team < SportsOddsAPI::Internal::Type::BaseModel
|
|
7
|
+
# @!attribute colors
|
|
8
|
+
#
|
|
9
|
+
# @return [SportsOddsAPI::Models::Team::Colors, nil]
|
|
10
|
+
optional :colors, -> { SportsOddsAPI::Team::Colors }
|
|
11
|
+
|
|
12
|
+
# @!attribute league_id
|
|
13
|
+
#
|
|
14
|
+
# @return [String, nil]
|
|
15
|
+
optional :league_id, String, api_name: :leagueID
|
|
16
|
+
|
|
17
|
+
# @!attribute logo
|
|
18
|
+
#
|
|
19
|
+
# @return [String, nil]
|
|
20
|
+
optional :logo, String
|
|
21
|
+
|
|
22
|
+
# @!attribute lookups
|
|
23
|
+
#
|
|
24
|
+
# @return [SportsOddsAPI::Models::Team::Lookups, nil]
|
|
25
|
+
optional :lookups, -> { SportsOddsAPI::Team::Lookups }
|
|
26
|
+
|
|
27
|
+
# @!attribute names
|
|
28
|
+
#
|
|
29
|
+
# @return [SportsOddsAPI::Models::Team::Names, nil]
|
|
30
|
+
optional :names, -> { SportsOddsAPI::Team::Names }
|
|
31
|
+
|
|
32
|
+
# @!attribute sport_id
|
|
33
|
+
#
|
|
34
|
+
# @return [String, nil]
|
|
35
|
+
optional :sport_id, String, api_name: :sportID
|
|
36
|
+
|
|
37
|
+
# @!attribute standings
|
|
38
|
+
#
|
|
39
|
+
# @return [SportsOddsAPI::Models::Team::Standings, nil]
|
|
40
|
+
optional :standings, -> { SportsOddsAPI::Team::Standings }
|
|
41
|
+
|
|
42
|
+
# @!attribute team_id
|
|
43
|
+
#
|
|
44
|
+
# @return [String, nil]
|
|
45
|
+
optional :team_id, String, api_name: :teamID
|
|
46
|
+
|
|
47
|
+
# @!method initialize(colors: nil, league_id: nil, logo: nil, lookups: nil, names: nil, sport_id: nil, standings: nil, team_id: nil)
|
|
48
|
+
# @param colors [SportsOddsAPI::Models::Team::Colors]
|
|
49
|
+
# @param league_id [String]
|
|
50
|
+
# @param logo [String]
|
|
51
|
+
# @param lookups [SportsOddsAPI::Models::Team::Lookups]
|
|
52
|
+
# @param names [SportsOddsAPI::Models::Team::Names]
|
|
53
|
+
# @param sport_id [String]
|
|
54
|
+
# @param standings [SportsOddsAPI::Models::Team::Standings]
|
|
55
|
+
# @param team_id [String]
|
|
56
|
+
|
|
57
|
+
# @see SportsOddsAPI::Models::Team#colors
|
|
58
|
+
class Colors < SportsOddsAPI::Internal::Type::BaseModel
|
|
59
|
+
# @!attribute primary
|
|
60
|
+
#
|
|
61
|
+
# @return [String, nil]
|
|
62
|
+
optional :primary, String
|
|
63
|
+
|
|
64
|
+
# @!attribute primary_contrast
|
|
65
|
+
#
|
|
66
|
+
# @return [String, nil]
|
|
67
|
+
optional :primary_contrast, String, api_name: :primaryContrast
|
|
68
|
+
|
|
69
|
+
# @!attribute secondary
|
|
70
|
+
#
|
|
71
|
+
# @return [String, nil]
|
|
72
|
+
optional :secondary, String
|
|
73
|
+
|
|
74
|
+
# @!attribute secondary_contrast
|
|
75
|
+
#
|
|
76
|
+
# @return [String, nil]
|
|
77
|
+
optional :secondary_contrast, String, api_name: :secondaryContrast
|
|
78
|
+
|
|
79
|
+
# @!method initialize(primary: nil, primary_contrast: nil, secondary: nil, secondary_contrast: nil)
|
|
80
|
+
# @param primary [String]
|
|
81
|
+
# @param primary_contrast [String]
|
|
82
|
+
# @param secondary [String]
|
|
83
|
+
# @param secondary_contrast [String]
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# @see SportsOddsAPI::Models::Team#lookups
|
|
87
|
+
class Lookups < SportsOddsAPI::Internal::Type::BaseModel
|
|
88
|
+
# @!attribute team_name
|
|
89
|
+
#
|
|
90
|
+
# @return [Array<String>, nil]
|
|
91
|
+
optional :team_name, SportsOddsAPI::Internal::Type::ArrayOf[String], api_name: :teamName
|
|
92
|
+
|
|
93
|
+
# @!method initialize(team_name: nil)
|
|
94
|
+
# @param team_name [Array<String>]
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# @see SportsOddsAPI::Models::Team#names
|
|
98
|
+
class Names < SportsOddsAPI::Internal::Type::BaseModel
|
|
99
|
+
# @!attribute long
|
|
100
|
+
#
|
|
101
|
+
# @return [String, nil]
|
|
102
|
+
optional :long, String
|
|
103
|
+
|
|
104
|
+
# @!attribute medium
|
|
105
|
+
#
|
|
106
|
+
# @return [String, nil]
|
|
107
|
+
optional :medium, String
|
|
108
|
+
|
|
109
|
+
# @!attribute short
|
|
110
|
+
#
|
|
111
|
+
# @return [String, nil]
|
|
112
|
+
optional :short, String
|
|
113
|
+
|
|
114
|
+
# @!method initialize(long: nil, medium: nil, short: nil)
|
|
115
|
+
# @param long [String]
|
|
116
|
+
# @param medium [String]
|
|
117
|
+
# @param short [String]
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
# @see SportsOddsAPI::Models::Team#standings
|
|
121
|
+
class Standings < SportsOddsAPI::Internal::Type::BaseModel
|
|
122
|
+
# @!attribute losses
|
|
123
|
+
#
|
|
124
|
+
# @return [Float, nil]
|
|
125
|
+
optional :losses, Float
|
|
126
|
+
|
|
127
|
+
# @!attribute played
|
|
128
|
+
#
|
|
129
|
+
# @return [Float, nil]
|
|
130
|
+
optional :played, Float
|
|
131
|
+
|
|
132
|
+
# @!attribute position
|
|
133
|
+
#
|
|
134
|
+
# @return [String, nil]
|
|
135
|
+
optional :position, String
|
|
136
|
+
|
|
137
|
+
# @!attribute record
|
|
138
|
+
#
|
|
139
|
+
# @return [String, nil]
|
|
140
|
+
optional :record, String
|
|
141
|
+
|
|
142
|
+
# @!attribute ties
|
|
143
|
+
#
|
|
144
|
+
# @return [Float, nil]
|
|
145
|
+
optional :ties, Float
|
|
146
|
+
|
|
147
|
+
# @!attribute wins
|
|
148
|
+
#
|
|
149
|
+
# @return [Float, nil]
|
|
150
|
+
optional :wins, Float
|
|
151
|
+
|
|
152
|
+
# @!method initialize(losses: nil, played: nil, position: nil, record: nil, ties: nil, wins: nil)
|
|
153
|
+
# @param losses [Float]
|
|
154
|
+
# @param played [Float]
|
|
155
|
+
# @param position [String]
|
|
156
|
+
# @param record [String]
|
|
157
|
+
# @param ties [Float]
|
|
158
|
+
# @param wins [Float]
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SportsOddsAPI
|
|
4
|
+
module Models
|
|
5
|
+
# @see SportsOddsAPI::Resources::Teams#get
|
|
6
|
+
class TeamGetParams < SportsOddsAPI::Internal::Type::BaseModel
|
|
7
|
+
extend SportsOddsAPI::Internal::Type::RequestParameters::Converter
|
|
8
|
+
include SportsOddsAPI::Internal::Type::RequestParameters
|
|
9
|
+
|
|
10
|
+
# @!attribute cursor
|
|
11
|
+
# The cursor for the request. Used to get the next group of Teams. This should be
|
|
12
|
+
# the nextCursor from the prior response.
|
|
13
|
+
#
|
|
14
|
+
# @return [String, nil]
|
|
15
|
+
optional :cursor, String
|
|
16
|
+
|
|
17
|
+
# @!attribute league_id
|
|
18
|
+
# A single leagueID or comma-separated list of leagueIDs to get Teams for
|
|
19
|
+
#
|
|
20
|
+
# @return [String, nil]
|
|
21
|
+
optional :league_id, String
|
|
22
|
+
|
|
23
|
+
# @!attribute limit
|
|
24
|
+
# The maximum number of Teams to return
|
|
25
|
+
#
|
|
26
|
+
# @return [Float, nil]
|
|
27
|
+
optional :limit, Float
|
|
28
|
+
|
|
29
|
+
# @!attribute sport_id
|
|
30
|
+
# A single sportID or comma-separated list of sportIDs to get Teams for
|
|
31
|
+
#
|
|
32
|
+
# @return [String, nil]
|
|
33
|
+
optional :sport_id, String
|
|
34
|
+
|
|
35
|
+
# @!attribute team_id
|
|
36
|
+
# A single teamID or comma-separated list of teamIDs to get data for
|
|
37
|
+
#
|
|
38
|
+
# @return [String, nil]
|
|
39
|
+
optional :team_id, String
|
|
40
|
+
|
|
41
|
+
# @!method initialize(cursor: nil, league_id: nil, limit: nil, sport_id: nil, team_id: nil, request_options: {})
|
|
42
|
+
# Some parameter documentations has been truncated, see
|
|
43
|
+
# {SportsOddsAPI::Models::TeamGetParams} for more details.
|
|
44
|
+
#
|
|
45
|
+
# @param cursor [String] The cursor for the request. Used to get the next group of Teams. This should be
|
|
46
|
+
#
|
|
47
|
+
# @param league_id [String] A single leagueID or comma-separated list of leagueIDs to get Teams for
|
|
48
|
+
#
|
|
49
|
+
# @param limit [Float] The maximum number of Teams to return
|
|
50
|
+
#
|
|
51
|
+
# @param sport_id [String] A single sportID or comma-separated list of sportIDs to get Teams for
|
|
52
|
+
#
|
|
53
|
+
# @param team_id [String] A single teamID or comma-separated list of teamIDs to get data for
|
|
54
|
+
#
|
|
55
|
+
# @param request_options [SportsOddsAPI::RequestOptions, Hash{Symbol=>Object}]
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SportsOddsAPI
|
|
4
|
+
[
|
|
5
|
+
SportsOddsAPI::Internal::Type::BaseModel,
|
|
6
|
+
*SportsOddsAPI::Internal::Type::BaseModel.subclasses
|
|
7
|
+
].each do |cls|
|
|
8
|
+
cls.define_sorbet_constant!(:OrHash) { T.type_alias { T.any(cls, SportsOddsAPI::Internal::AnyHash) } }
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
SportsOddsAPI::Internal::Util.walk_namespaces(SportsOddsAPI::Models).each do |mod|
|
|
12
|
+
case mod
|
|
13
|
+
in SportsOddsAPI::Internal::Type::Enum | SportsOddsAPI::Internal::Type::Union
|
|
14
|
+
mod.constants.each do |name|
|
|
15
|
+
case mod.const_get(name)
|
|
16
|
+
in true | false
|
|
17
|
+
mod.define_sorbet_constant!(:TaggedBoolean) { T.type_alias { T::Boolean } }
|
|
18
|
+
mod.define_sorbet_constant!(:OrBoolean) { T.type_alias { T::Boolean } }
|
|
19
|
+
in Integer
|
|
20
|
+
mod.define_sorbet_constant!(:TaggedInteger) { T.type_alias { Integer } }
|
|
21
|
+
mod.define_sorbet_constant!(:OrInteger) { T.type_alias { Integer } }
|
|
22
|
+
in Float
|
|
23
|
+
mod.define_sorbet_constant!(:TaggedFloat) { T.type_alias { Float } }
|
|
24
|
+
mod.define_sorbet_constant!(:OrFloat) { T.type_alias { Float } }
|
|
25
|
+
in Symbol
|
|
26
|
+
mod.define_sorbet_constant!(:TaggedSymbol) { T.type_alias { Symbol } }
|
|
27
|
+
mod.define_sorbet_constant!(:OrSymbol) { T.type_alias { T.any(Symbol, String) } }
|
|
28
|
+
else
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
else
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
SportsOddsAPI::Internal::Util.walk_namespaces(SportsOddsAPI::Models)
|
|
36
|
+
.lazy
|
|
37
|
+
.grep(SportsOddsAPI::Internal::Type::Union)
|
|
38
|
+
.each do |mod|
|
|
39
|
+
const = :Variants
|
|
40
|
+
next if mod.sorbet_constant_defined?(const)
|
|
41
|
+
|
|
42
|
+
mod.define_sorbet_constant!(const) { T.type_alias { mod.to_sorbet_type } }
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
AccountGetUsageParams = SportsOddsAPI::Models::AccountGetUsageParams
|
|
46
|
+
|
|
47
|
+
AccountUsage = SportsOddsAPI::Models::AccountUsage
|
|
48
|
+
|
|
49
|
+
Event = SportsOddsAPI::Models::Event
|
|
50
|
+
|
|
51
|
+
EventGetParams = SportsOddsAPI::Models::EventGetParams
|
|
52
|
+
|
|
53
|
+
League = SportsOddsAPI::Models::League
|
|
54
|
+
|
|
55
|
+
LeagueGetParams = SportsOddsAPI::Models::LeagueGetParams
|
|
56
|
+
|
|
57
|
+
Player = SportsOddsAPI::Models::Player
|
|
58
|
+
|
|
59
|
+
PlayerGetParams = SportsOddsAPI::Models::PlayerGetParams
|
|
60
|
+
|
|
61
|
+
RateLimitInterval = SportsOddsAPI::Models::RateLimitInterval
|
|
62
|
+
|
|
63
|
+
Sport = SportsOddsAPI::Models::Sport
|
|
64
|
+
|
|
65
|
+
SportGetParams = SportsOddsAPI::Models::SportGetParams
|
|
66
|
+
|
|
67
|
+
Stat = SportsOddsAPI::Models::Stat
|
|
68
|
+
|
|
69
|
+
StatGetParams = SportsOddsAPI::Models::StatGetParams
|
|
70
|
+
|
|
71
|
+
StreamEventsParams = SportsOddsAPI::Models::StreamEventsParams
|
|
72
|
+
|
|
73
|
+
Team = SportsOddsAPI::Models::Team
|
|
74
|
+
|
|
75
|
+
TeamGetParams = SportsOddsAPI::Models::TeamGetParams
|
|
76
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SportsOddsAPI
|
|
4
|
+
# Specify HTTP behaviour to use for a specific request. These options supplement
|
|
5
|
+
# or override those provided at the client level.
|
|
6
|
+
#
|
|
7
|
+
# When making a request, you can pass an actual {RequestOptions} instance, or
|
|
8
|
+
# simply pass a Hash with symbol keys matching the attributes on this class.
|
|
9
|
+
class RequestOptions < SportsOddsAPI::Internal::Type::BaseModel
|
|
10
|
+
# @api private
|
|
11
|
+
#
|
|
12
|
+
# @param opts [SportsOddsAPI::RequestOptions, Hash{Symbol=>Object}]
|
|
13
|
+
#
|
|
14
|
+
# @raise [ArgumentError]
|
|
15
|
+
def self.validate!(opts)
|
|
16
|
+
case opts
|
|
17
|
+
in SportsOddsAPI::RequestOptions | Hash
|
|
18
|
+
opts.to_h.each_key do |k|
|
|
19
|
+
unless fields.include?(k)
|
|
20
|
+
raise ArgumentError.new("Request `opts` keys must be one of #{fields.keys}, got #{k.inspect}")
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
else
|
|
24
|
+
raise ArgumentError.new("Request `opts` must be a Hash or RequestOptions, got #{opts.inspect}")
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# @!attribute idempotency_key
|
|
29
|
+
# Idempotency key to send with request and all associated retries. Will only be
|
|
30
|
+
# sent for write requests.
|
|
31
|
+
#
|
|
32
|
+
# @return [String, nil]
|
|
33
|
+
optional :idempotency_key, String
|
|
34
|
+
|
|
35
|
+
# @!attribute extra_query
|
|
36
|
+
# Extra query params to send with the request. These are `.merge`’d into any
|
|
37
|
+
# `query` given at the client level.
|
|
38
|
+
#
|
|
39
|
+
# @return [Hash{String=>Array<String>, String, nil}, nil]
|
|
40
|
+
optional :extra_query,
|
|
41
|
+
SportsOddsAPI::Internal::Type::HashOf[SportsOddsAPI::Internal::Type::ArrayOf[String]]
|
|
42
|
+
|
|
43
|
+
# @!attribute extra_headers
|
|
44
|
+
# Extra headers to send with the request. These are `.merged`’d into any
|
|
45
|
+
# `extra_headers` given at the client level.
|
|
46
|
+
#
|
|
47
|
+
# @return [Hash{String=>String, nil}, nil]
|
|
48
|
+
optional :extra_headers, SportsOddsAPI::Internal::Type::HashOf[String, nil?: true]
|
|
49
|
+
|
|
50
|
+
# @!attribute extra_body
|
|
51
|
+
# Extra data to send with the request. These are deep merged into any data
|
|
52
|
+
# generated as part of the normal request.
|
|
53
|
+
#
|
|
54
|
+
# @return [Object, nil]
|
|
55
|
+
optional :extra_body, SportsOddsAPI::Internal::Type::HashOf[SportsOddsAPI::Internal::Type::Unknown]
|
|
56
|
+
|
|
57
|
+
# @!attribute max_retries
|
|
58
|
+
# Maximum number of retries to attempt after a failed initial request.
|
|
59
|
+
#
|
|
60
|
+
# @return [Integer, nil]
|
|
61
|
+
optional :max_retries, Integer
|
|
62
|
+
|
|
63
|
+
# @!attribute timeout
|
|
64
|
+
# Request timeout in seconds.
|
|
65
|
+
#
|
|
66
|
+
# @return [Float, nil]
|
|
67
|
+
optional :timeout, Float
|
|
68
|
+
|
|
69
|
+
# @!method initialize(values = {})
|
|
70
|
+
# Returns a new instance of RequestOptions.
|
|
71
|
+
#
|
|
72
|
+
# @param values [Hash{Symbol=>Object}]
|
|
73
|
+
|
|
74
|
+
define_sorbet_constant!(:OrHash) do
|
|
75
|
+
T.type_alias { T.any(SportsOddsAPI::RequestOptions, SportsOddsAPI::Internal::AnyHash) }
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SportsOddsAPI
|
|
4
|
+
module Resources
|
|
5
|
+
class Account
|
|
6
|
+
# Get rate-limits and usage data about your API key
|
|
7
|
+
#
|
|
8
|
+
# @overload get_usage(request_options: {})
|
|
9
|
+
#
|
|
10
|
+
# @param request_options [SportsOddsAPI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
11
|
+
#
|
|
12
|
+
# @return [SportsOddsAPI::Models::AccountUsage]
|
|
13
|
+
#
|
|
14
|
+
# @see SportsOddsAPI::Models::AccountGetUsageParams
|
|
15
|
+
def get_usage(params = {})
|
|
16
|
+
@client.request(
|
|
17
|
+
method: :get,
|
|
18
|
+
path: "account/usage",
|
|
19
|
+
unwrap: :data,
|
|
20
|
+
model: SportsOddsAPI::AccountUsage,
|
|
21
|
+
options: params[:request_options]
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# @api private
|
|
26
|
+
#
|
|
27
|
+
# @param client [SportsOddsAPI::Client]
|
|
28
|
+
def initialize(client:)
|
|
29
|
+
@client = client
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SportsOddsAPI
|
|
4
|
+
module Resources
|
|
5
|
+
class Events
|
|
6
|
+
# Some parameter documentations has been truncated, see
|
|
7
|
+
# {SportsOddsAPI::Models::EventGetParams} for more details.
|
|
8
|
+
#
|
|
9
|
+
# Get a list of Events
|
|
10
|
+
#
|
|
11
|
+
# @overload get(bookmaker_id: nil, cancelled: nil, cursor: nil, ended: nil, event_id: nil, finalized: nil, include_alt_lines: nil, include_opposing_odds: nil, league_id: nil, limit: nil, live: nil, odd_id: nil, odds_available: nil, odds_present: nil, player_id: nil, sport_id: nil, started: nil, starts_after: nil, starts_before: nil, team_id: nil, type: nil, request_options: {})
|
|
12
|
+
#
|
|
13
|
+
# @param bookmaker_id [String] A bookmakerID or comma-separated list of bookmakerIDs to include odds for
|
|
14
|
+
#
|
|
15
|
+
# @param cancelled [Boolean] Only include cancelled Events (true), only non-cancelled Events (false) or all E
|
|
16
|
+
#
|
|
17
|
+
# @param cursor [String] The cursor for the request. Used to get the next group of Events. This should be
|
|
18
|
+
#
|
|
19
|
+
# @param ended [Boolean] Only include Events which have have ended (true), only Events which have not end
|
|
20
|
+
#
|
|
21
|
+
# @param event_id [String] An eventID or comma-separated list of eventIDs to get Event data for
|
|
22
|
+
#
|
|
23
|
+
# @param finalized [Boolean] Only include finalized Events (true), exclude unfinalized Events (false) or all
|
|
24
|
+
#
|
|
25
|
+
# @param include_alt_lines [Boolean] Whether to include alternate lines in the odds byBookmaker data
|
|
26
|
+
#
|
|
27
|
+
# @param include_opposing_odds [Boolean] Whether to include opposing odds for each included oddID
|
|
28
|
+
#
|
|
29
|
+
# @param league_id [String] A leagueID or comma-separated list of leagueIDs to get Events for
|
|
30
|
+
#
|
|
31
|
+
# @param limit [Float] The maximum number of Events to return
|
|
32
|
+
#
|
|
33
|
+
# @param live [Boolean] Only include live Events (true), only non-live Events (false) or all Events (omi
|
|
34
|
+
#
|
|
35
|
+
# @param odd_id [String] An oddID or comma-separated list of oddIDs to include odds for
|
|
36
|
+
#
|
|
37
|
+
# @param odds_available [Boolean] Whether you want only Events which do (true) or do not (false) have odds markets
|
|
38
|
+
#
|
|
39
|
+
# @param odds_present [Boolean] Whether you want only Events which do (true) or do not (false) have any associat
|
|
40
|
+
#
|
|
41
|
+
# @param player_id [String] A playerID or comma-separated list of playerIDs to include Events (and associate
|
|
42
|
+
#
|
|
43
|
+
# @param sport_id [String] A sportID or comma-separated list of sportIDs to get Events for
|
|
44
|
+
#
|
|
45
|
+
# @param started [Boolean] Only include Events which have have previously started (true), only Events which
|
|
46
|
+
#
|
|
47
|
+
# @param starts_after [Time] Get Events that start after this date
|
|
48
|
+
#
|
|
49
|
+
# @param starts_before [Time] Get Events that start before this date
|
|
50
|
+
#
|
|
51
|
+
# @param team_id [String] A teamID or comma-separated list of teamIDs to include Events for
|
|
52
|
+
#
|
|
53
|
+
# @param type [String] Only include Events of the specified type
|
|
54
|
+
#
|
|
55
|
+
# @param request_options [SportsOddsAPI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
56
|
+
#
|
|
57
|
+
# @return [SportsOddsAPI::Internal::NextCursorPage<SportsOddsAPI::Models::Event>]
|
|
58
|
+
#
|
|
59
|
+
# @see SportsOddsAPI::Models::EventGetParams
|
|
60
|
+
def get(params = {})
|
|
61
|
+
parsed, options = SportsOddsAPI::EventGetParams.dump_request(params)
|
|
62
|
+
@client.request(
|
|
63
|
+
method: :get,
|
|
64
|
+
path: "events/",
|
|
65
|
+
query: parsed.transform_keys(
|
|
66
|
+
bookmaker_id: "bookmakerID",
|
|
67
|
+
event_id: "eventID",
|
|
68
|
+
include_alt_lines: "includeAltLines",
|
|
69
|
+
include_opposing_odds: "includeOpposingOdds",
|
|
70
|
+
league_id: "leagueID",
|
|
71
|
+
odd_id: "oddID",
|
|
72
|
+
odds_available: "oddsAvailable",
|
|
73
|
+
odds_present: "oddsPresent",
|
|
74
|
+
player_id: "playerID",
|
|
75
|
+
sport_id: "sportID",
|
|
76
|
+
starts_after: "startsAfter",
|
|
77
|
+
starts_before: "startsBefore",
|
|
78
|
+
team_id: "teamID"
|
|
79
|
+
),
|
|
80
|
+
page: SportsOddsAPI::Internal::NextCursorPage,
|
|
81
|
+
model: SportsOddsAPI::Event,
|
|
82
|
+
options: options
|
|
83
|
+
)
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# @api private
|
|
87
|
+
#
|
|
88
|
+
# @param client [SportsOddsAPI::Client]
|
|
89
|
+
def initialize(client:)
|
|
90
|
+
@client = client
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SportsOddsAPI
|
|
4
|
+
module Resources
|
|
5
|
+
class Leagues
|
|
6
|
+
# Get a list of Leagues
|
|
7
|
+
#
|
|
8
|
+
# @overload get(league_id: nil, sport_id: nil, request_options: {})
|
|
9
|
+
#
|
|
10
|
+
# @param league_id [String] The league to get data for
|
|
11
|
+
#
|
|
12
|
+
# @param sport_id [String] The sport to get leagues for
|
|
13
|
+
#
|
|
14
|
+
# @param request_options [SportsOddsAPI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
15
|
+
#
|
|
16
|
+
# @return [Array<SportsOddsAPI::Models::League>]
|
|
17
|
+
#
|
|
18
|
+
# @see SportsOddsAPI::Models::LeagueGetParams
|
|
19
|
+
def get(params = {})
|
|
20
|
+
parsed, options = SportsOddsAPI::LeagueGetParams.dump_request(params)
|
|
21
|
+
@client.request(
|
|
22
|
+
method: :get,
|
|
23
|
+
path: "leagues/",
|
|
24
|
+
query: parsed.transform_keys(league_id: "leagueID", sport_id: "sportID"),
|
|
25
|
+
unwrap: :data,
|
|
26
|
+
model: SportsOddsAPI::Internal::Type::ArrayOf[SportsOddsAPI::League],
|
|
27
|
+
options: options
|
|
28
|
+
)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# @api private
|
|
32
|
+
#
|
|
33
|
+
# @param client [SportsOddsAPI::Client]
|
|
34
|
+
def initialize(client:)
|
|
35
|
+
@client = client
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SportsOddsAPI
|
|
4
|
+
module Resources
|
|
5
|
+
class Players
|
|
6
|
+
# Some parameter documentations has been truncated, see
|
|
7
|
+
# {SportsOddsAPI::Models::PlayerGetParams} for more details.
|
|
8
|
+
#
|
|
9
|
+
# Get a list of Players for a specific Team or Event
|
|
10
|
+
#
|
|
11
|
+
# @overload get(cursor: nil, event_id: nil, limit: nil, player_id: nil, team_id: nil, request_options: {})
|
|
12
|
+
#
|
|
13
|
+
# @param cursor [String] The cursor for the request. Used to get the next group of Players. This should b
|
|
14
|
+
#
|
|
15
|
+
# @param event_id [String] EventID to get Players data for
|
|
16
|
+
#
|
|
17
|
+
# @param limit [Float] The maximum number of Players to return
|
|
18
|
+
#
|
|
19
|
+
# @param player_id [String] PlayerID to get data for
|
|
20
|
+
#
|
|
21
|
+
# @param team_id [String] TeamID to get Players data for
|
|
22
|
+
#
|
|
23
|
+
# @param request_options [SportsOddsAPI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
24
|
+
#
|
|
25
|
+
# @return [SportsOddsAPI::Internal::NextCursorPage<SportsOddsAPI::Models::Player>]
|
|
26
|
+
#
|
|
27
|
+
# @see SportsOddsAPI::Models::PlayerGetParams
|
|
28
|
+
def get(params = {})
|
|
29
|
+
parsed, options = SportsOddsAPI::PlayerGetParams.dump_request(params)
|
|
30
|
+
@client.request(
|
|
31
|
+
method: :get,
|
|
32
|
+
path: "players/",
|
|
33
|
+
query: parsed.transform_keys(event_id: "eventID", player_id: "playerID", team_id: "teamID"),
|
|
34
|
+
page: SportsOddsAPI::Internal::NextCursorPage,
|
|
35
|
+
model: SportsOddsAPI::Player,
|
|
36
|
+
options: options
|
|
37
|
+
)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# @api private
|
|
41
|
+
#
|
|
42
|
+
# @param client [SportsOddsAPI::Client]
|
|
43
|
+
def initialize(client:)
|
|
44
|
+
@client = client
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SportsOddsAPI
|
|
4
|
+
module Resources
|
|
5
|
+
class Sports
|
|
6
|
+
# Get a list of sports
|
|
7
|
+
#
|
|
8
|
+
# @overload get(request_options: {})
|
|
9
|
+
#
|
|
10
|
+
# @param request_options [SportsOddsAPI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
11
|
+
#
|
|
12
|
+
# @return [Array<SportsOddsAPI::Models::Sport>]
|
|
13
|
+
#
|
|
14
|
+
# @see SportsOddsAPI::Models::SportGetParams
|
|
15
|
+
def get(params = {})
|
|
16
|
+
@client.request(
|
|
17
|
+
method: :get,
|
|
18
|
+
path: "sports/",
|
|
19
|
+
unwrap: :data,
|
|
20
|
+
model: SportsOddsAPI::Internal::Type::ArrayOf[SportsOddsAPI::Sport],
|
|
21
|
+
options: params[:request_options]
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# @api private
|
|
26
|
+
#
|
|
27
|
+
# @param client [SportsOddsAPI::Client]
|
|
28
|
+
def initialize(client:)
|
|
29
|
+
@client = client
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SportsOddsAPI
|
|
4
|
+
module Resources
|
|
5
|
+
class Stats
|
|
6
|
+
# Some parameter documentations has been truncated, see
|
|
7
|
+
# {SportsOddsAPI::Models::StatGetParams} for more details.
|
|
8
|
+
#
|
|
9
|
+
# Get a list of StatIDs
|
|
10
|
+
#
|
|
11
|
+
# @overload get(sport_id: nil, stat_id: nil, stat_level: nil, request_options: {})
|
|
12
|
+
#
|
|
13
|
+
# @param sport_id [String] SportID to get StatIDs for
|
|
14
|
+
#
|
|
15
|
+
# @param stat_id [String] StatID to get data for
|
|
16
|
+
#
|
|
17
|
+
# @param stat_level [String] Level of the stat, must be used in combination with sportID. Must be one of all,
|
|
18
|
+
#
|
|
19
|
+
# @param request_options [SportsOddsAPI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
20
|
+
#
|
|
21
|
+
# @return [Array<SportsOddsAPI::Models::Stat>]
|
|
22
|
+
#
|
|
23
|
+
# @see SportsOddsAPI::Models::StatGetParams
|
|
24
|
+
def get(params = {})
|
|
25
|
+
parsed, options = SportsOddsAPI::StatGetParams.dump_request(params)
|
|
26
|
+
@client.request(
|
|
27
|
+
method: :get,
|
|
28
|
+
path: "stats/",
|
|
29
|
+
query: parsed.transform_keys(sport_id: "sportID", stat_id: "statID", stat_level: "statLevel"),
|
|
30
|
+
unwrap: :data,
|
|
31
|
+
model: SportsOddsAPI::Internal::Type::ArrayOf[SportsOddsAPI::Stat],
|
|
32
|
+
options: options
|
|
33
|
+
)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# @api private
|
|
37
|
+
#
|
|
38
|
+
# @param client [SportsOddsAPI::Client]
|
|
39
|
+
def initialize(client:)
|
|
40
|
+
@client = client
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|