brazil-cep 0.2.0 → 0.3.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: 7f79497f3008ab411781e49694a291d7e68b6aa13e9f26e98cdc4dd9bc16a346
4
- data.tar.gz: a17b09d8556f278136becb604b8db054cf5e4b0cb4ab16c848485a6611667a45
3
+ metadata.gz: 0a4a5033b0b8e49dbd7d48f464c76e857a30140c6e29be85ca3440ed45bec589
4
+ data.tar.gz: ea457dfc8a836178131f231002907c5f6ae165d0f9124bbb7faa711a7e88784c
5
5
  SHA512:
6
- metadata.gz: bf50938524c7564d0aefa7a29e4b5f20898842f2b2e3f9067ea897d0516e9e81db5683586dd0c67de28b3b626bab773d2b1cc0ae1bb25c4c644c6314e34e99cc
7
- data.tar.gz: 53f25c7996df1aac9121a66ea28657badcac31c6866befcfc1c4ef6e6c523b0628925b45a83f99eb77169cd0360eb1ce4a36ed54365930e4744a525545cb9def
6
+ metadata.gz: d632a23cd2e78c93392d3c405a9d9023efc4d639e69ddf3c7bc334b0ebaa48bf42a968067c18fea8e2cae8e7541b17ea56f6265ddfccf1c9bbe829e298b462ca
7
+ data.tar.gz: 01e72027e7660a8b6f67a1730df08824bbfc72bcbed978d2c7ee2a87fd13901b62f7130ec0576d5b00fe0aeb3101afdb2196abec7d6df1f610288989bcff9f34
@@ -31,7 +31,8 @@ module Brazil
31
31
  @cep = value unless value.nil?
32
32
 
33
33
  http_request(provider_url) do |http_response|
34
- raise Brazil::Cep::RequestError, http_response unless http_response.is_a?(Net::HTTPSuccess)
34
+ raise Brazil::Cep::ZipcodeNotFound, http_response if http_response.is_a?(Net::HTTPNotFound)
35
+ raise Brazil::Cep::RequestError, http_response if http_response.code.to_i >= 400
35
36
  end
36
37
 
37
38
  deserialization!
@@ -11,6 +11,8 @@ module Brazil
11
11
  private
12
12
 
13
13
  def transformation!
14
+ raise Brazil::Cep::ZipcodeNotFound, @response if @payload[:erro] == true
15
+
14
16
  address_params = {
15
17
  zipcode: @payload[:cep],
16
18
  state: @payload[:uf],
@@ -18,7 +20,7 @@ module Brazil
18
20
  neighborhood: @payload[:bairro],
19
21
  street: @payload[:logradouro],
20
22
  complement: @payload[:complemento],
21
- meta: @payload.update(provider: :postmon)
23
+ meta: @payload.update(provider: :viacep)
22
24
  }
23
25
 
24
26
  Brazil::Cep::Address.new(**address_params)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Brazil
4
4
  module Cep
5
- VERSION = "0.2.0"
5
+ VERSION = "0.3.0"
6
6
  end
7
7
  end
data/lib/brazil_cep.rb CHANGED
@@ -8,8 +8,24 @@ module Brazil
8
8
  # Brazil::Cep providers a simple way to fetch address information from a Brazilian CEP
9
9
  # @public
10
10
  module Cep
11
+ # generic error class
11
12
  class Error < StandardError; end
12
- class RequestError < Error; end
13
+
14
+ # request error class
15
+ class RequestError < Error
16
+ attr_reader :status, :code, :response
17
+
18
+ def initialize(response)
19
+ @response = response
20
+ @status = response.message || "Undefined"
21
+ @code = response.code.to_i
22
+
23
+ super("Request Error: #{code} #{status} - #{response.body[0..1000].inspect}")
24
+ end
25
+ end
26
+
27
+ # zipcode not found error class
28
+ class ZipcodeNotFound < RequestError; end
13
29
 
14
30
  # fetch address information from a Brazilian CEP
15
31
  # @param [String] cep the CEP to fetch
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brazil-cep
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Vinciguerra