synsbasen_api 1.0.12 → 1.0.13

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: 16d6364975bbffedbffc512b5f710b9304bfc9df47e220ed3a33f957425114ba
4
- data.tar.gz: b580cfe2a5c4dbe8426803cea411936bc85b7444d97eb4f73b9dd176fc0c3172
3
+ metadata.gz: 565b3bfae169b625688bcb1bb70d1fc3c68abb88d2226b0e796139a25adab9bc
4
+ data.tar.gz: fdb44552e927ff505dca9d8a1778ee84fb99ea559d1362518176ebcdb913f1ed
5
5
  SHA512:
6
- metadata.gz: 66a24651b84829ac1414f5f57a3df11e3d067cd7dab5d83cae46c8fdf683e65e74ff0be396fae3dc041f762cd77c72358c47f18cf0627446692a6f57c9a8b5d3
7
- data.tar.gz: 5c75347ce30bce0fe183efc8adff4b35f73de042c716bdf69dd6f3a68ca36d19c35985262c23cb7d34ecb82a570c91b06c3e43aad7d6f278f999523084b681f1
6
+ metadata.gz: 794d7cc6f66ddb9320e706810fd7aa6fcc262b81d1599ec7b92e8f265ea835e08568609ca23b5ae2be000a711a0ad07faadce0cdebd2b55ccf6289a526e48efb
7
+ data.tar.gz: e701b46e2c20799a2fd53a4be1baadf650179b5ca5ee4d01377aebe8a39c049a287d688595100e4bca0653edafb0bcfef4d868a94b0643edc44a45e29eb14066
@@ -109,17 +109,25 @@ module SynsbasenApi
109
109
  # Raises specific errors based on the type of Net::HTTP error encountered.
110
110
  #
111
111
  # @param e [Exception] The exception to handle.
112
- # @raise [ClientError, ServerError] Raised for client or server errors.
112
+ # @raise [ClientError, ServerError, BadRequestError, UnauthorizedError, ForbiddenError, NotFoundError, ConflictError, UnprocessableEntityError, InternalServerError] Raised for errors.
113
113
  def raise_errors(response)
114
+ return unless response.is_a?(Net::HTTPClientError) || response.is_a?(Net::HTTPServerError)
115
+
114
116
  case response
115
117
  when Net::HTTPUnauthorized
116
118
  raise ClientError.new(response.message, response.code, {})
117
- when Net::HTTPClientError, Net::HTTPBadRequest, Net::HTTPForbidden, Net::HTTPNotFound
118
- raise ClientError.new(response.message, response.code, parse_json(response.body))
119
- when Net::HTTPServerError
120
- raise ServerError.new(response.message, response.code, {})
121
119
  else
122
- response
120
+ error_class_name = "#{response.message.split.map(&:capitalize).join}Error"
121
+
122
+ error_class =
123
+ if SynsbasenApi.const_defined?(error_class_name, false) &&
124
+ SynsbasenApi.const_get(error_class_name).is_a?(Class)
125
+ SynsbasenApi.const_get(error_class_name)
126
+ else
127
+ response.is_a?(Net::HTTPClientError) ? ClientError : ServerError
128
+ end
129
+
130
+ raise error_class.new(response.message, response.code, parse_json(response.body))
123
131
  end
124
132
  end
125
133
 
@@ -30,6 +30,14 @@ module SynsbasenApi
30
30
  # The `ServerError` class represents errors that occur on the server side (5xx status codes).
31
31
  class ServerError < Error; end
32
32
 
33
+ %w[BadRequestError UnauthorizedError ForbiddenError NotFoundError
34
+ ConflictError UnprocessableEntityError].each do |error|
35
+ klass = Class.new(ClientError)
36
+ const_set(error, klass)
37
+ end
38
+
39
+ class InternalServerError < ServerError; end
40
+
33
41
  # The `VehicleAlreadySubscribedError` class represents errors that occur when a vehicle is already being watched.
34
- class VehicleAlreadySubscribedError < ClientError; end
42
+ class VehicleAlreadySubscribedError < ConflictError; end
35
43
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module SynsbasenApi
4
4
  # The `VERSION` module specifies the version of the SynsbasenApi gem.
5
- VERSION = "1.0.12"
5
+ VERSION = "1.0.13"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: synsbasen_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.12
4
+ version: 1.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jimmy Poulsen
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2025-09-29 00:00:00.000000000 Z
12
+ date: 2025-09-30 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Synsbasen API is the easiest way to get access to the Danish vehicle
15
15
  registry. See https://api.synsbasen.dk for details.