mr_speedy_ruby 1.0.0.pre.alpha.4 → 1.0.0.pre.alpha.6
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|