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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 01513030c5ac4786387f7658a656918027433f46406ef3c0d06ee689fd17f160
4
- data.tar.gz: 0a6a3a51a67cad6eab01b6b4bb55ba2afea72ea963617b80a5a13b8a4bb1bf1d
3
+ metadata.gz: fc6c4fc3517e45ebd7bd141a4fd8e849e80e753a33dcddf9ade6ef28103074e7
4
+ data.tar.gz: 1b738efdf92d3b80da9b93a8cdf439210bceee37a744b363104fa12b0bc6806a
5
5
  SHA512:
6
- metadata.gz: 935e2fe6be3714e05280c399436903ab45502088dc735c22bf1ea44d6d95148ff1eb811ca3aa1068845b5bf6d3a7fa140fd6783bff1ff2fcfa22ed65cb818698
7
- data.tar.gz: 7b3a7c1a8fb9c9f129acde474cb895f226939518eba369c9243fba877c5bef8f1faa51f0c49b9412c50ec6715438ca1b43c1644bd87a691af3b542f26fcb138f
6
+ metadata.gz: 2f61e55a55fc152dc8d730feaff42fcf86b14f5281e7dd2bc9e5cf0d483520cac9c234d2b59c12233361590a0b371c08185192ef67e60a64a07c0e38895575dd
7
+ data.tar.gz: 4e23bf258205e4066a1bd1c53238ce299717ad2cd59d7e2c82fceb71cea5a3cae4e513caff6a13c247316c4c25c2eec4572c5212c8b79da0ae9b47c04d7a0203
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.1] - 2025-03-09
4
+
5
+ * Fix car_data, race_control, and team_radio endpoints
6
+
3
7
  ## [0.1.0] - 2025-02
4
8
 
5
9
  * Initial release
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("car-data", params))
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("race-control", params))
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("team-radio", params))
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
@@ -2,4 +2,8 @@
2
2
 
3
3
  module Openf1
4
4
  class Error < StandardError; end
5
+ class AuthenticationError < Error; end
6
+ class RateLimitError < Error; end
7
+ class ResourceNotFoundError < Error; end
8
+ class ServerError < Error; end
5
9
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Openf1
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
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.0
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-02-22 00:00:00.000000000 Z
10
+ date: 2025-03-09 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: faraday