alula-ruby 1.2.4 → 1.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5c33d8891eaf1c48cac11a52b1afb25ac8e0b0085337035ed62cce0f149a39ca
4
- data.tar.gz: a744baa78d697b48c49a1adb8a1037ecf42fc57345eb93193ee62448349aeb4b
3
+ metadata.gz: f70aa0a4b0c40a14dd7cfdbb1faa3655525f06212409a61eb9c4af071deead07
4
+ data.tar.gz: a97bd6710997caa25a901cd3000c1edabdcbd31458460a17e61658093dc7cc5b
5
5
  SHA512:
6
- metadata.gz: 24325ab8af9e6e69168d7eac1f09ffd8c6b9fdabac9058d076fbf742d7049764f11c555568f3618f81950af779e3dd55a5cba6263f203a3a7852928b3f6b8a12
7
- data.tar.gz: 90e797fdfe125ea6f593c5bcf425dfe17b2eb2100adb602a0277032bf9e83c93baa12052ba67a07ed3b024806f8bc34fe3cdd1aa74fe646e03557c7cc4894b0b
6
+ metadata.gz: 9ff58743a47fc9cc49a71c76e57302debc60acb28a13f37099385d7dbf7260f96b3381da9b6fd8423ee0877a786050a4c6cf9efc5060bf4339a6921d82fba8cb
7
+ data.tar.gz: f51670cb212984b3157ec25e64e07744205359e0d98c3d707ade79bded8a83fc30a0764a747b021cdd23867094c5be8e93a862ac47fa9a0c7b610ef87522a36d
data/README.md CHANGED
@@ -380,7 +380,7 @@ Success responses are custom per RPC method. Some provide response data, some do
380
380
 
381
381
  After checking out the repo, run `bin/setup` to install dependencies. You can also run `bundle exec bin/console` for an interactive prompt that will allow you to experiment.
382
382
 
383
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, and push git commits and tags.
383
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, commit and push your changes. GitHub Actions takes care of the gem release.
384
384
 
385
385
  ### Using Docker
386
386
 
data/VERSION.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  | Version | Date | Description |
4
4
  | ------- | --------- | --------------------------------------------------------------------------- |
5
+ | v1.4.0 | 2024-01-04 | Add more known errors that use a different format, bugfix for `NotImplementedError` raising |
6
+ | v1.3.0 | 2023-11-20 | Update NotImplemented error's message to include a JSONized hash, add more known errors that use a different format |
5
7
  | v1.2.4 | 2023-09-15 | Update UI Settings to object |
6
8
  | v1.2.3 | 2023-08-31 | Update typo device patchable field `uiSettings` |
7
9
  | v1.2.2 | 2023-08-30 | Add new device patchable field `uiSettings` |
data/alula.gemspec CHANGED
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.add_development_dependency "bundler", "~> 2.0"
32
32
  spec.add_development_dependency "dotenv"
33
33
  spec.add_development_dependency "guard-rspec"
34
- spec.add_development_dependency "nokogiri", "~> 1.10.3"
34
+ spec.add_development_dependency "nokogiri", "~> 1.11.7"
35
35
  spec.add_development_dependency "rake", "~> 10.0"
36
36
  spec.add_development_dependency "rspec", "~> 3.0"
37
37
  spec.add_development_dependency "simplecov", "~> 0.21.2"
data/lib/alula/errors.rb CHANGED
@@ -71,9 +71,24 @@ module Alula
71
71
  # RPC errors are identified by jsonrpc in the body.
72
72
  return ProcedureError.new(response) if response.data['jsonrpc']
73
73
 
74
-
75
- Alula.logger.error response
76
- raise NotImplementedError.new("Unable to derive error for #{response.data['error']}")
74
+ # Error messages coming from the API are inconsistent.
75
+ # Sometimes they are in the msg key, sometimes in the message key
76
+ # Example: https://github.com/alula-net/alula-connect/pull/3417#issue-1985813211
77
+ # Here we have some errors that are actually known but at least one of them is not properly formatted by the API
78
+ message = response.data.dig('error', 'data', 'msg') ||
79
+ response.data.dig('error', 'data', 'message') ||
80
+ response.data.dig('error', 'description')
81
+ case message
82
+ when 'dealer does not exist'
83
+ NotFoundError.new(message)
84
+ when 'Insufficient User Scope'
85
+ InsufficientScopeError.new(message)
86
+ when 'Not Found'
87
+ NotFoundError.new(message)
88
+ else
89
+ Alula.logger.error response
90
+ raise NotImplementedError, "Unable to derive error for #{response.data['error'].to_json}"
91
+ end
77
92
  end
78
93
  end
79
94
 
@@ -100,8 +115,19 @@ module Alula
100
115
  # RPC errors are identified by jsonrpc in the body.
101
116
  return ProcedureError.new(response) if response.data['jsonrpc']
102
117
 
103
- Alula.logger.error response
104
- raise NotImplementedError.new("Unable to derive error for #{response.data['errors']}")
118
+ # See comment in the error_for_response method
119
+ message = error.dig('data', 'msg') || error.dig('data', 'message') || error['description']
120
+ case message
121
+ when 'dealer does not exist'
122
+ NotFoundError.new(message)
123
+ when 'Insufficient User Scope'
124
+ InsufficientScopeError.new(message)
125
+ when 'Not Found'
126
+ NotFoundError.new(message)
127
+ else
128
+ Alula.logger.error response
129
+ raise NotImplementedError, "Unable to derive error for #{response.data['errors'].to_json}"
130
+ end
105
131
  end
106
132
  end
107
133
  end
data/lib/alula/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Alula
4
- VERSION = '1.2.4'
4
+ VERSION = '1.4.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alula-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.4
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Titus Johnson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-09-15 00:00:00.000000000 Z
11
+ date: 2024-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 1.10.3
103
+ version: 1.11.7
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 1.10.3
110
+ version: 1.11.7
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rake
113
113
  requirement: !ruby/object:Gem::Requirement