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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5d2c2406e33ada4b65dd88f1ab38466a18290dd9d83f0c29df982c419c660f48
4
- data.tar.gz: 4d201453a1d10a717e4f338692f2c94fe6362ee1c94632d23377dcec6277616d
3
+ metadata.gz: a1e0002485b9bc4db8045c792a8d5a5e439ecb726cf39d08ff2ea3966fe928ec
4
+ data.tar.gz: 7a8b284eec6852baeef910382ea720df6a4f0854dffd3f5e3bbf9266eb588484
5
5
  SHA512:
6
- metadata.gz: 1ac74e3e6d1ea3def5a5154248c1ed121659c410baea0a8009d8f35aba30ac65e0f54cce422eaf2fcfd0219a1409eb2fd36ba83277980e6c2fabe7ee142198a7
7
- data.tar.gz: cdcf8e9499ff5e501a76bcf7ce259d36edfeefd2e39029ff63872241df60948308022150b30730eb22ca6a6e38a9a552517cabade835bd7b930dda90fc44b285
6
+ metadata.gz: 6b8bff1e5e413ba37b0d9b0c95f600b3187d69e7e3aa4ef17fd035441095c94f3d244499630ada8d0d1ec462691f983412d65ff2e8176f55f02a0df151ae91cd
7
+ data.tar.gz: 139799fd6c6ca76763b3c26078aaf62556697a45a2cd65809d718b55fb1973a949d85e5ec57f6aa2d04f793dfe058b839ce450119148105aea564770243396cb
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mr_speedy_ruby (1.0.0.pre.alpha.4)
4
+ mr_speedy_ruby (1.0.0.pre.alpha.5)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -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
@@ -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="http://robot.mrspeedy.ph".freeze
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
- MrSpeedyRuby::ErrorParser.raise_errors_from(code: error) unless success
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
- # Constantize string class
55
- # @see https://stackoverflow.com/a/5924541
56
- raise Object.const_get("MrSpeedyRuby::#{error}") if error
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
@@ -1,3 +1,3 @@
1
1
  module MrSpeedyRuby
2
- VERSION = "1.0.0-alpha.4"
2
+ VERSION = "1.0.0-alpha.6"
3
3
  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
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-05-14 00:00:00.000000000 Z
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.3
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: []