mr_speedy_ruby 1.0.0.pre.alpha.4 → 1.0.0.pre.alpha.6
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/Gemfile.lock +1 -1
- data/fixtures/vcr_cassettes/raise_invalid_parameters.yml +49 -0
- data/lib/mr_speedy_ruby/base.rb +7 -2
- data/lib/mr_speedy_ruby/error_parser.rb +13 -6
- data/lib/mr_speedy_ruby/version.rb +1 -1
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1e0002485b9bc4db8045c792a8d5a5e439ecb726cf39d08ff2ea3966fe928ec
|
4
|
+
data.tar.gz: 7a8b284eec6852baeef910382ea720df6a4f0854dffd3f5e3bbf9266eb588484
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b8bff1e5e413ba37b0d9b0c95f600b3187d69e7e3aa4ef17fd035441095c94f3d244499630ada8d0d1ec462691f983412d65ff2e8176f55f02a0df151ae91cd
|
7
|
+
data.tar.gz: 139799fd6c6ca76763b3c26078aaf62556697a45a2cd65809d718b55fb1973a949d85e5ec57f6aa2d04f793dfe058b839ce450119148105aea564770243396cb
|
data/Gemfile.lock
CHANGED
@@ -0,0 +1,49 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://robotapitest.mrspeedy.ph/api/business/1.1/create-order
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"matter":null,"vehicle_type_id":8,"points":[{"address":"","contact_person":{"name":"","phone":""},"packages":[]},{"address":"Unit
|
9
|
+
802, EcoTower, 32nd Street corner 9th Avenue, BGC, Taguig, 1634 Metro Manila","contact_person":{"name":"Reciever","phone":"639123456789"},"packages":[]}]}'
|
10
|
+
headers:
|
11
|
+
Accept-Encoding:
|
12
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
13
|
+
Accept:
|
14
|
+
- "*/*"
|
15
|
+
User-Agent:
|
16
|
+
- Ruby
|
17
|
+
Host:
|
18
|
+
- robotapitest.mrspeedy.ph
|
19
|
+
X-Dv-Auth-Token:
|
20
|
+
- 70B4ABCA8A35AC50E1585E27F217DF160F740D46
|
21
|
+
response:
|
22
|
+
status:
|
23
|
+
code: 400
|
24
|
+
message: Bad Request
|
25
|
+
headers:
|
26
|
+
Server:
|
27
|
+
- nginx
|
28
|
+
Date:
|
29
|
+
- Tue, 27 Oct 2020 08:37:50 GMT
|
30
|
+
Content-Type:
|
31
|
+
- application/json; charset=utf-8
|
32
|
+
Transfer-Encoding:
|
33
|
+
- chunked
|
34
|
+
Connection:
|
35
|
+
- keep-alive
|
36
|
+
X-Frame-Options:
|
37
|
+
- DENY
|
38
|
+
X-Content-Type-Options:
|
39
|
+
- nosniff
|
40
|
+
X-Xss-Protection:
|
41
|
+
- 1; mode=block;
|
42
|
+
Strict-Transport-Security:
|
43
|
+
- max-age=63072000; includeSubDomains
|
44
|
+
body:
|
45
|
+
encoding: UTF-8
|
46
|
+
string: '{"is_successful":false,"errors":["invalid_parameters"],"parameter_errors":{"matter":["not_nullable"],"points":[{"address":["min_length"],"contact_person":{"phone":["invalid_phone"]}},null]}}'
|
47
|
+
http_version:
|
48
|
+
recorded_at: Tue, 27 Oct 2020 08:37:50 GMT
|
49
|
+
recorded_with: VCR 5.1.0
|
data/lib/mr_speedy_ruby/base.rb
CHANGED
@@ -7,7 +7,7 @@ module MrSpeedyRuby
|
|
7
7
|
require "json"
|
8
8
|
|
9
9
|
AUTH_TOKEN_HEADER="X-DV-Auth-Token".freeze
|
10
|
-
PRODUCTION_BASE_URL="
|
10
|
+
PRODUCTION_BASE_URL="https://robot.mrspeedy.ph".freeze
|
11
11
|
STAGING_BASE_URL="https://robotapitest.mrspeedy.ph".freeze
|
12
12
|
|
13
13
|
# Constructor method
|
@@ -109,7 +109,12 @@ module MrSpeedyRuby
|
|
109
109
|
def validate_error(response:)
|
110
110
|
success = response["is_successful"]
|
111
111
|
error = response["errors"]&.first || ""
|
112
|
-
|
112
|
+
unless success
|
113
|
+
MrSpeedyRuby::ErrorParser.raise_errors_from(
|
114
|
+
code: error,
|
115
|
+
errors: response["parameter_errors"]
|
116
|
+
)
|
117
|
+
end
|
113
118
|
end
|
114
119
|
end
|
115
120
|
end
|
@@ -33,8 +33,8 @@ module MrSpeedyRuby
|
|
33
33
|
class << self
|
34
34
|
# Raise Error from Response Status
|
35
35
|
# @param code [String] error code
|
36
|
-
def raise_errors_from(code:)
|
37
|
-
raise_error_for(code)
|
36
|
+
def raise_errors_from(code:, errors: nil)
|
37
|
+
raise_error_for(code, errors)
|
38
38
|
|
39
39
|
# Default to Unexpected Error
|
40
40
|
raise UnexpectedError
|
@@ -48,12 +48,19 @@ module MrSpeedyRuby
|
|
48
48
|
# @private
|
49
49
|
#
|
50
50
|
# @raise [MrSpeedyRuby::MrSpeedyError] raise code based error
|
51
|
-
def raise_error_for(code)
|
51
|
+
def raise_error_for(code, errors)
|
52
52
|
error = ERROR_CODES[code]
|
53
|
+
return unless error
|
53
54
|
|
54
|
-
|
55
|
-
|
56
|
-
|
55
|
+
if error == MrSpeedyRuby::InvalidParameters
|
56
|
+
# Include parameter errors
|
57
|
+
msg = "Request parameters contain errors, ERRORS: #{errors.inspect}"
|
58
|
+
raise MrSpeedyRuby::InvalidParameters, msg
|
59
|
+
else
|
60
|
+
# Constantize string class
|
61
|
+
# @see https://stackoverflow.com/a/5924541
|
62
|
+
raise Object.const_get("MrSpeedyRuby::#{error}")
|
63
|
+
end
|
57
64
|
end
|
58
65
|
end
|
59
66
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mr_speedy_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.pre.alpha.
|
4
|
+
version: 1.0.0.pre.alpha.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter John Alvarado
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -133,6 +133,7 @@ files:
|
|
133
133
|
- fixtures/vcr_cassettes/orders_with_limit.yml
|
134
134
|
- fixtures/vcr_cassettes/orders_with_offset.yml
|
135
135
|
- fixtures/vcr_cassettes/place_order.yml
|
136
|
+
- fixtures/vcr_cassettes/raise_invalid_parameters.yml
|
136
137
|
- lib/mr_speedy_ruby.rb
|
137
138
|
- lib/mr_speedy_ruby/base.rb
|
138
139
|
- lib/mr_speedy_ruby/client.rb
|
@@ -148,7 +149,7 @@ licenses:
|
|
148
149
|
metadata:
|
149
150
|
homepage_uri: https://github.com/redjoker011/mr_speedy_ruby
|
150
151
|
source_code_uri: https://github.com/redjoker011/mr_speedy_ruby
|
151
|
-
post_install_message:
|
152
|
+
post_install_message:
|
152
153
|
rdoc_options:
|
153
154
|
- "--title"
|
154
155
|
- MrSpeedyRuby - mr.speedy api integration for ruby
|
@@ -170,9 +171,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
170
171
|
- !ruby/object:Gem::Version
|
171
172
|
version: 1.3.1
|
172
173
|
requirements: []
|
173
|
-
rubyforge_project:
|
174
|
-
rubygems_version: 2.7.
|
175
|
-
signing_key:
|
174
|
+
rubyforge_project:
|
175
|
+
rubygems_version: 2.7.6
|
176
|
+
signing_key:
|
176
177
|
specification_version: 4
|
177
178
|
summary: Mr.speedy api integration for ruby
|
178
179
|
test_files: []
|