openf1-ruby 0.1.0 → 0.1.1
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 +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/openf1/client.rb +14 -5
- data/lib/openf1/error.rb +4 -0
- data/lib/openf1/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc6c4fc3517e45ebd7bd141a4fd8e849e80e753a33dcddf9ade6ef28103074e7
|
4
|
+
data.tar.gz: 1b738efdf92d3b80da9b93a8cdf439210bceee37a744b363104fa12b0bc6806a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f61e55a55fc152dc8d730feaff42fcf86b14f5281e7dd2bc9e5cf0d483520cac9c234d2b59c12233361590a0b371c08185192ef67e60a64a07c0e38895575dd
|
7
|
+
data.tar.gz: 4e23bf258205e4066a1bd1c53238ce299717ad2cd59d7e2c82fceb71cea5a3cae4e513caff6a13c247316c4c25c2eec4572c5212c8b79da0ae9b47c04d7a0203
|
data/CHANGELOG.md
CHANGED
data/lib/openf1/client.rb
CHANGED
@@ -13,7 +13,7 @@ module Openf1
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def car_data(params = {})
|
16
|
-
CarData.new(get_request("
|
16
|
+
CarData.new(get_request("car_data", params))
|
17
17
|
end
|
18
18
|
|
19
19
|
def drivers(params = {})
|
@@ -45,7 +45,7 @@ module Openf1
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def race_control(params = {})
|
48
|
-
RaceControl.new(get_request("
|
48
|
+
RaceControl.new(get_request("race_control", params))
|
49
49
|
end
|
50
50
|
|
51
51
|
def sessions(params = {})
|
@@ -57,7 +57,7 @@ module Openf1
|
|
57
57
|
end
|
58
58
|
|
59
59
|
def team_radio(params = {})
|
60
|
-
TeamRadio.new(get_request("
|
60
|
+
TeamRadio.new(get_request("team_radio", params))
|
61
61
|
end
|
62
62
|
|
63
63
|
def weather(params = {})
|
@@ -68,13 +68,22 @@ module Openf1
|
|
68
68
|
|
69
69
|
def get_request(endpoint, params = {})
|
70
70
|
response = connection.get("#{BASE_URL}/#{endpoint}", params)
|
71
|
+
handle_error_response(response) unless response.success?
|
71
72
|
JSON.parse(response.body)
|
72
|
-
rescue Faraday::Error => e
|
73
|
-
raise Openf1::Error, "API request failed: #{e.message}"
|
74
73
|
rescue JSON::ParserError => e
|
75
74
|
raise Openf1::Error, "Failed to parse API response: #{e.message}"
|
76
75
|
end
|
77
76
|
|
77
|
+
def handle_error_response(response)
|
78
|
+
case response.status
|
79
|
+
when 401 then raise Openf1::AuthenticationError, "Invalid API key"
|
80
|
+
when 404 then raise Openf1::ResourceNotFoundError, "Resource not found"
|
81
|
+
when 429 then raise Openf1::RateLimitError, "Rate limit exceeded"
|
82
|
+
when 500..599 then raise Openf1::ServerError, "Server error: #{response.status}"
|
83
|
+
else raise Openf1::Error, "API error: #{response.status}"
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
78
87
|
def connection
|
79
88
|
@connection ||= Faraday.new(BASE_URL) do |conn|
|
80
89
|
conn.headers["Authorization"] = "Bearer #{api_key}" if api_key
|
data/lib/openf1/error.rb
CHANGED
data/lib/openf1/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openf1-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Greg Dodd
|
8
8
|
bindir: exe
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-
|
10
|
+
date: 2025-03-09 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: faraday
|