easyship 0.1.3 → 0.1.4

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: 812760f6c36e7f28cbdbf710f5828178f3f983dc99f356fa8382877321d616f6
4
- data.tar.gz: f3a18b45e2fbf246790b1d0e10dec6d5b2905205833f6b2a436601faa21a557f
3
+ metadata.gz: 1c6c501de616b3a63e0d2115bcd85edd664d19457e15cee9ddc39b90460faf06
4
+ data.tar.gz: c28725fd205ad6c7943bc3af5ec230c6dfa0a3a9a605a36caaab01d9ff6b4120
5
5
  SHA512:
6
- metadata.gz: 3c1c3673c3ff7516cb39cd7507c6c49564eaf3989b884bc847874b701bc4d77fc9e87d818f99add52b6bc80832db2fe75eb9be0756e6ceb67731cb29831faeba
7
- data.tar.gz: fb50c604914a06b7aaa73e0105cf053f11be690e352acf4692e5e9bcb4f4a892bfe87abaf30dab16c04d6d767c82d6931960733972d63d835992bea3c3a07134
6
+ metadata.gz: d3e59ba1d63fccd367093dd0d0cfa2c4e853be57820384e7ab033929f808adffca7313633009dc6b7804d3c54d8130ab3f8da45586e31c59865a903c4b906e38
7
+ data.tar.gz: db7d3fb69ea674cfc5a9ee6527193ce637bf123b74d51f104a821de4f0c9273d3cb4d25621e8ea6b885f852f16c09e2c87485e6845b04bb4e1f70ad4aff319d2
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## [Unreleased]
2
2
 
3
+
4
+ ## [v0.1.4](https://github.com/mmarusyk/easyship/tree/v0.1.4) - 2024-10-16
5
+
6
+ ### Fixed
7
+ - Handle JSON::Parser Error
8
+
3
9
  ## [v0.1.3](https://github.com/mmarusyk/easyship/tree/v0.1.3) - 2024-06-27
4
10
 
5
11
  ### Fixed
@@ -7,7 +7,9 @@ module Easyship
7
7
  def self.handle_response(response)
8
8
  body = response.body
9
9
 
10
- JSON.parse(body, symbolize_names: true) unless body.nil? || body.empty?
10
+ JSON.parse(body, symbolize_names: true)
11
+ rescue JSON::ParserError
12
+ nil
11
13
  end
12
14
  end
13
15
  end
@@ -1,13 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative '../error'
4
+
4
5
  module Easyship
5
6
  module Middleware
6
7
  # Response middleware that raises an error based on the response status code
7
8
  class ErrorHandlerMiddleware < Faraday::Middleware
8
9
  def on_complete(env)
9
10
  status_code = env[:status].to_i
10
- body = JSON.parse(env[:body], symbolize_names: true) if json?(env[:body])
11
+ body = response_body(env[:body])
11
12
 
12
13
  handle_status_code(status_code, body)
13
14
  end
@@ -54,8 +55,10 @@ module Easyship
54
55
  { details: body, message: 'Something went wrong.' }
55
56
  end
56
57
 
57
- def json?(body)
58
- !body.nil? && body.is_a?(String)
58
+ def response_body(body)
59
+ JSON.parse(body, symbolize_names: true)
60
+ rescue JSON::ParserError
61
+ nil
59
62
  end
60
63
  end
61
64
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Easyship
4
- VERSION = '0.1.3'
4
+ VERSION = '0.1.4'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easyship
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Marusyk
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-06-27 00:00:00.000000000 Z
11
+ date: 2024-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -83,7 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
83
  - !ruby/object:Gem::Version
84
84
  version: '0'
85
85
  requirements: []
86
- rubygems_version: 3.4.10
86
+ rubygems_version: 3.5.16
87
87
  signing_key:
88
88
  specification_version: 4
89
89
  summary: A Ruby client for integrating with Easyship's API for shipping and logistics