intelipost-rb 0.0.10 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +0 -1
- data/Gemfile +2 -1
- data/Rakefile +6 -4
- data/intelipost-rb.gemspec +13 -11
- data/lib/intelipost/client.rb +6 -6
- data/lib/intelipost/mash.rb +15 -3
- data/lib/intelipost/version.rb +3 -1
- data/spec/cassettes/Intelipost_Client/dealing_with_Quotes/_quote_create.yml +58 -0
- data/spec/cassettes/Intelipost_Client/dealing_with_Quotes/_quote_create_failure.yml +52 -0
- data/spec/cassettes/Intelipost_Client/dealing_with_Quotes/_quote_get_.yml +111 -0
- data/spec/cassettes/Intelipost_Client/dealing_with_zipcode_cep_/returns_a_Intelipost_Mash_on_successful_query.yml +59 -0
- data/spec/lib/intelipost/client_spec.rb +7 -5
- data/spec/lib/intelipost/mash_spec.rb +21 -6
- data/spec/spec_helper.rb +7 -2
- metadata +82 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b6506d54b108ddeb4a23050e92d9bb3d3406da6b
|
4
|
+
data.tar.gz: 3b41a657c7dc6ee52ccd42e993327f201684597e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86ede30dd565ca866ddb1f9ce4a73b6cda3cfba6c28fb2c4dfcb20680d037e0ce4080540430718724d5a079b2921ea2e7873d97cb7bfe3d7e9a05da8f0f9fe64
|
7
|
+
data.tar.gz: 05432154d87a9072b09ec3cf1c53cdcd11f5ea43ae699b3e47e64f494437158e3323ee8f3f552bfaf18f98cf70c5fe5aa7ae775c67478095d3f28c712c0aaec9
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -1,15 +1,17 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bundler/gem_tasks'
|
2
4
|
require 'rspec/core/rake_task'
|
3
5
|
|
4
6
|
RSpec::Core::RakeTask.new(:spec)
|
5
7
|
|
6
8
|
task :coverage do
|
7
9
|
ENV['COVERAGE'] = 'true'
|
8
|
-
Rake::Task[
|
10
|
+
Rake::Task['spec'].execute
|
9
11
|
end
|
10
12
|
|
11
13
|
task :console do
|
12
|
-
sh
|
14
|
+
sh 'irb -rubygems -r intelipost-rb'
|
13
15
|
end
|
14
16
|
|
15
|
-
task :
|
17
|
+
task default: :spec
|
data/intelipost-rb.gemspec
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
# coding: utf-8
|
3
|
+
|
2
4
|
lib = File.expand_path('../lib', __FILE__)
|
3
5
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
6
|
require 'intelipost/version'
|
@@ -8,8 +10,8 @@ Gem::Specification.new do |spec|
|
|
8
10
|
spec.version = Intelipost::VERSION
|
9
11
|
spec.authors = ['Celestino Gomes', 'Luiz Rocha']
|
10
12
|
spec.email = ['tinorj@gmail.com', 'lsdrocha@gmail.com']
|
11
|
-
spec.description = %q
|
12
|
-
spec.summary = %q
|
13
|
+
spec.description = %q(Gem to access the REST API of Intelipost)
|
14
|
+
spec.summary = %q(Gem to access the REST API of Intelipost)
|
13
15
|
spec.homepage = 'http://github.com/gaveteiro/intelipost-rb'
|
14
16
|
spec.license = 'MIT'
|
15
17
|
|
@@ -18,16 +20,16 @@ Gem::Specification.new do |spec|
|
|
18
20
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
21
|
spec.require_paths = ['lib']
|
20
22
|
|
21
|
-
spec.add_dependency 'faraday',
|
22
|
-
spec.add_dependency 'faraday_middleware', '
|
23
|
-
spec.add_dependency 'hashie', '
|
23
|
+
spec.add_dependency 'faraday', '>= 0.11', '< 1.0'
|
24
|
+
spec.add_dependency 'faraday_middleware', '>= 0.11', '< 1.0'
|
25
|
+
spec.add_dependency 'hashie', '>= 3.5', '< 3.6'
|
24
26
|
|
25
|
-
spec.add_development_dependency 'bundler',
|
26
|
-
spec.add_development_dependency 'rake',
|
27
|
-
spec.add_development_dependency 'rspec',
|
28
|
-
spec.add_development_dependency 'vcr',
|
29
|
-
spec.add_development_dependency '
|
27
|
+
spec.add_development_dependency 'bundler', '>= 1.7.6', '< 1.15'
|
28
|
+
spec.add_development_dependency 'rake', '~> 10.4', '>= 10.4.2'
|
29
|
+
spec.add_development_dependency 'rspec', '~> 3.2', '>= 3.2.0'
|
30
|
+
spec.add_development_dependency 'vcr', '~> 2.9', '>= 2.9.3'
|
31
|
+
spec.add_development_dependency 'dotenv', '~> 2.0', '>= 2.0.1'
|
32
|
+
spec.add_development_dependency 'webmock', '2.3.2'
|
30
33
|
spec.add_development_dependency 'simplecov', '~> 0.10'
|
31
|
-
spec.add_development_dependency 'dotenv', '~> 2.0.1'
|
32
34
|
spec.add_development_dependency 'codeclimate-test-reporter', '~> 0.4.7'
|
33
35
|
end
|
data/lib/intelipost/client.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
require
|
1
|
+
require 'intelipost/mash'
|
2
2
|
|
3
3
|
module Intelipost
|
4
4
|
class Client
|
5
|
-
HOST =
|
6
|
-
SERVICE =
|
7
|
-
API_VERSION =
|
5
|
+
HOST = 'api.intelipost.com.br'
|
6
|
+
SERVICE = 'api/'
|
7
|
+
API_VERSION = 'v1'
|
8
8
|
attr_reader :uri, :options, :connection, :api_key, :platform
|
9
9
|
|
10
10
|
def initialize(options)
|
11
11
|
@options = { ssl: true }
|
12
12
|
@options.merge! options
|
13
|
-
uri = @options[:ssl] ?
|
13
|
+
uri = @options[:ssl] ? 'https://' : 'http://'
|
14
14
|
uri.concat HOST
|
15
15
|
|
16
16
|
@uri = URI.join uri, SERVICE, API_VERSION
|
@@ -21,7 +21,7 @@ module Intelipost
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def connection
|
24
|
-
raise ArgumentError,
|
24
|
+
raise ArgumentError, 'an api_key is required to connect' if api_key.nil?
|
25
25
|
|
26
26
|
Faraday.new(url: @uri.to_s) do |conn|
|
27
27
|
conn.request :json
|
data/lib/intelipost/mash.rb
CHANGED
@@ -1,7 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Intelipost
|
2
4
|
class Mash < ::Hashie::Mash
|
5
|
+
disable_warnings if respond_to?(:disable_warnings)
|
6
|
+
|
3
7
|
def success?
|
4
|
-
|
8
|
+
key?('status') && status == 'OK'
|
5
9
|
end
|
6
10
|
|
7
11
|
def failure?
|
@@ -9,8 +13,16 @@ module Intelipost
|
|
9
13
|
end
|
10
14
|
|
11
15
|
def all_messages
|
12
|
-
return unless
|
13
|
-
|
16
|
+
return unless key?('messages')
|
17
|
+
messages.map(&:text).join(';')
|
18
|
+
end
|
19
|
+
|
20
|
+
def length
|
21
|
+
self[:length]
|
22
|
+
end
|
23
|
+
|
24
|
+
def key
|
25
|
+
self[:key]
|
14
26
|
end
|
15
27
|
end
|
16
28
|
end
|
data/lib/intelipost/version.rb
CHANGED
@@ -0,0 +1,58 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api.intelipost.com.br/api/v1/quote
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"origin_zip_code":"04037-003","destination_zip_code":"06396-200","volumes":[{"weight":0.1,"volume_type":"BOX","cost_of_goods":100,"width":10,"height":10,"length":10}],"additional_information":{"free_shipping":false,"extra_cost_absolute":0,"extra_cost_percentage":0,"lead_time_business_days":0,"sales_channel":"hotsite","client_type":"gold","delivery_method_ids":[1,2,3]}}'
|
9
|
+
headers:
|
10
|
+
platform:
|
11
|
+
- intelipost-gem-test
|
12
|
+
User-Agent:
|
13
|
+
- Faraday v0.12.1
|
14
|
+
Content-Type:
|
15
|
+
- application/json
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message:
|
20
|
+
headers:
|
21
|
+
date:
|
22
|
+
- Thu, 11 May 2017 00:23:20 GMT
|
23
|
+
content-type:
|
24
|
+
- application/json; charset=UTF-8
|
25
|
+
content-length:
|
26
|
+
- '1764'
|
27
|
+
connection:
|
28
|
+
- close
|
29
|
+
server:
|
30
|
+
- nginx/1.11.13
|
31
|
+
access-control-expose-headers:
|
32
|
+
- production
|
33
|
+
production:
|
34
|
+
- 'false'
|
35
|
+
access-control-allow-origin:
|
36
|
+
- "*"
|
37
|
+
access-control-allow-credentials:
|
38
|
+
- 'true'
|
39
|
+
access-control-allow-headers:
|
40
|
+
- origin, x-requested-with, content-type, api_key, token, production, display-errors,
|
41
|
+
api-key, platform, debug, ignore-all-conversion
|
42
|
+
access-control-allow-methods:
|
43
|
+
- PUT, GET, POST, DELETE, OPTIONS
|
44
|
+
x-server:
|
45
|
+
- nginx_spr-sae1-prod-application05
|
46
|
+
front-end-https:
|
47
|
+
- 'on'
|
48
|
+
body:
|
49
|
+
encoding: UTF-8
|
50
|
+
string: '{"status":"OK","messages":[],"content":{"origin_zip_code":"4037003","destination_zip_code":"6396200","platform":"intelipost-gem-test","additional_information":{"extra_cost_absolute":0.0,"lead_time_business_days":0,"free_shipping":false,"delivery_method_ids":[1,2,3],"extra_cost_percentage":0.0,"tax_id":null,"client_type":"gold","sales_channel":"hotsite","payment_type":null,"is_state_tax_payer":null,"shipped_date":null,"calculate_estimated_date_exact":null},"identification":null,"quoting_mode":null,"id":1692119094,"client_id":8554,"created":1494462200077,"created_iso":"2017-05-10T21:23:20.077-03:00","delivery_options":[{"delivery_method_id":2,"delivery_estimate_business_days":8,"provider_shipping_cost":14.87,"final_shipping_cost":14.87,"description":"Correios
|
51
|
+
Sedex","delivery_note":"Entrega domiciliar diferenciada","removed_by_return_modes":false,"removed_by_quote_rules":false,"cubic_weight":0.167,"delivery_method_type":"EXPRESS","delivery_method_name":"Correios
|
52
|
+
Sedex","logistic_provider_name":"Correios","shown_to_client":true,"scheduling_enabled":false},{"delivery_method_id":1,"delivery_estimate_business_days":12,"provider_shipping_cost":16.45,"final_shipping_cost":16.45,"description":"Correios
|
53
|
+
PAC","delivery_note":"Entrega domiciliar diferenciada","removed_by_return_modes":false,"removed_by_quote_rules":false,"cubic_weight":0.167,"delivery_method_type":"STANDARD","delivery_method_name":"Correios
|
54
|
+
PAC","logistic_provider_name":"Correios","shown_to_client":true,"scheduling_enabled":false}],"volumes":[{"weight":0.1,"cost_of_goods":100.0,"width":10.0,"height":10.0,"length":10.0,"description":null,"sku_groups_ids":[],"product_category":null,"volume_type":"BOX"}],"cached":true},"time":"2.8
|
55
|
+
ms","timezone":"America/Sao_Paulo","locale":"pt_BR"}'
|
56
|
+
http_version:
|
57
|
+
recorded_at: Thu, 11 May 2017 00:23:20 GMT
|
58
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,52 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api.intelipost.com.br/api/v1/quote
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"failure":"failure"}'
|
9
|
+
headers:
|
10
|
+
platform:
|
11
|
+
- intelipost-gem-test
|
12
|
+
User-Agent:
|
13
|
+
- Faraday v0.12.1
|
14
|
+
Content-Type:
|
15
|
+
- application/json
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 400
|
19
|
+
message:
|
20
|
+
headers:
|
21
|
+
date:
|
22
|
+
- Thu, 11 May 2017 00:23:20 GMT
|
23
|
+
content-type:
|
24
|
+
- application/json; charset=UTF-8
|
25
|
+
content-length:
|
26
|
+
- '359'
|
27
|
+
connection:
|
28
|
+
- close
|
29
|
+
server:
|
30
|
+
- nginx/1.11.13
|
31
|
+
access-control-expose-headers:
|
32
|
+
- production
|
33
|
+
production:
|
34
|
+
- 'false'
|
35
|
+
access-control-allow-origin:
|
36
|
+
- "*"
|
37
|
+
access-control-allow-credentials:
|
38
|
+
- 'true'
|
39
|
+
body:
|
40
|
+
encoding: ASCII-8BIT
|
41
|
+
string: !binary |-
|
42
|
+
eyJzdGF0dXMiOiJFUlJPUiIsIm1lc3NhZ2VzIjpbeyJ0eXBlIjoiRVJST1Ii
|
43
|
+
LCJ0ZXh0IjoiRmFsdGFuZG8gaW5mb3JtYcOnw6NvIGRlIHZvbHVtZSIsImtl
|
44
|
+
eSI6InF1b3RlLnZvbHVtZXMubWlzc2luZyJ9LHsidHlwZSI6IkVSUk9SIiwi
|
45
|
+
dGV4dCI6IkZhbHRhbmRvIENFUCBkZSBkZXN0aW5vIiwia2V5IjoicXVvdGUu
|
46
|
+
ZGVzdGluYXRpb25aaXBDb2RlLm1pc3NpbmcifSx7InR5cGUiOiJFUlJPUiIs
|
47
|
+
InRleHQiOiJGYWx0YW5kbyBjZXAgZGUgb3JpZ2VtIiwia2V5IjoicXVvdGUu
|
48
|
+
b3JpZ2luWmlwQ29kZS5taXNzaW5nIn1dLCJ0aW1lIjoiMC4zIG1zIiwidGlt
|
49
|
+
ZXpvbmUiOiJBbWVyaWNhL1Nhb19QYXVsbyIsImxvY2FsZSI6InB0X0JSIn0=
|
50
|
+
http_version:
|
51
|
+
recorded_at: Thu, 11 May 2017 00:23:20 GMT
|
52
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,111 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api.intelipost.com.br/api/v1/quote
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"origin_zip_code":"04037-003","destination_zip_code":"06396-200","volumes":[{"weight":0.1,"volume_type":"BOX","cost_of_goods":100,"width":10,"height":10,"length":10}],"additional_information":{"free_shipping":false,"extra_cost_absolute":0,"extra_cost_percentage":0,"lead_time_business_days":0,"sales_channel":"hotsite","client_type":"gold","delivery_method_ids":[1,2,3]}}'
|
9
|
+
headers:
|
10
|
+
platform:
|
11
|
+
- intelipost-gem-test
|
12
|
+
User-Agent:
|
13
|
+
- Faraday v0.12.1
|
14
|
+
Content-Type:
|
15
|
+
- application/json
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message:
|
20
|
+
headers:
|
21
|
+
date:
|
22
|
+
- Thu, 11 May 2017 00:23:19 GMT
|
23
|
+
content-type:
|
24
|
+
- application/json; charset=UTF-8
|
25
|
+
content-length:
|
26
|
+
- '1764'
|
27
|
+
connection:
|
28
|
+
- close
|
29
|
+
server:
|
30
|
+
- nginx/1.11.13
|
31
|
+
access-control-expose-headers:
|
32
|
+
- production
|
33
|
+
production:
|
34
|
+
- 'false'
|
35
|
+
access-control-allow-origin:
|
36
|
+
- "*"
|
37
|
+
access-control-allow-credentials:
|
38
|
+
- 'true'
|
39
|
+
access-control-allow-headers:
|
40
|
+
- origin, x-requested-with, content-type, api_key, token, production, display-errors,
|
41
|
+
api-key, platform, debug, ignore-all-conversion
|
42
|
+
access-control-allow-methods:
|
43
|
+
- PUT, GET, POST, DELETE, OPTIONS
|
44
|
+
x-server:
|
45
|
+
- nginx_spr-sae1-prod-application05
|
46
|
+
front-end-https:
|
47
|
+
- 'on'
|
48
|
+
body:
|
49
|
+
encoding: UTF-8
|
50
|
+
string: '{"status":"OK","messages":[],"content":{"origin_zip_code":"4037003","destination_zip_code":"6396200","platform":"intelipost-gem-test","additional_information":{"extra_cost_absolute":0.0,"lead_time_business_days":0,"free_shipping":false,"delivery_method_ids":[1,2,3],"extra_cost_percentage":0.0,"tax_id":null,"client_type":"gold","sales_channel":"hotsite","payment_type":null,"is_state_tax_payer":null,"shipped_date":null,"calculate_estimated_date_exact":null},"identification":null,"quoting_mode":null,"id":1692119094,"client_id":8554,"created":1494462199856,"created_iso":"2017-05-10T21:23:19.856-03:00","delivery_options":[{"delivery_method_id":2,"delivery_estimate_business_days":8,"provider_shipping_cost":14.87,"final_shipping_cost":14.87,"description":"Correios
|
51
|
+
Sedex","delivery_note":"Entrega domiciliar diferenciada","removed_by_return_modes":false,"removed_by_quote_rules":false,"cubic_weight":0.167,"delivery_method_type":"EXPRESS","delivery_method_name":"Correios
|
52
|
+
Sedex","logistic_provider_name":"Correios","shown_to_client":true,"scheduling_enabled":false},{"delivery_method_id":1,"delivery_estimate_business_days":12,"provider_shipping_cost":16.45,"final_shipping_cost":16.45,"description":"Correios
|
53
|
+
PAC","delivery_note":"Entrega domiciliar diferenciada","removed_by_return_modes":false,"removed_by_quote_rules":false,"cubic_weight":0.167,"delivery_method_type":"STANDARD","delivery_method_name":"Correios
|
54
|
+
PAC","logistic_provider_name":"Correios","shown_to_client":true,"scheduling_enabled":false}],"volumes":[{"weight":0.1,"cost_of_goods":100.0,"width":10.0,"height":10.0,"length":10.0,"description":null,"sku_groups_ids":[],"product_category":null,"volume_type":"BOX"}],"cached":true},"time":"2.1
|
55
|
+
ms","timezone":"America/Sao_Paulo","locale":"pt_BR"}'
|
56
|
+
http_version:
|
57
|
+
recorded_at: Thu, 11 May 2017 00:23:19 GMT
|
58
|
+
- request:
|
59
|
+
method: get
|
60
|
+
uri: https://api.intelipost.com.br/api/v1/quote/1692119094
|
61
|
+
body:
|
62
|
+
encoding: US-ASCII
|
63
|
+
string: ''
|
64
|
+
headers:
|
65
|
+
platform:
|
66
|
+
- intelipost-gem-test
|
67
|
+
User-Agent:
|
68
|
+
- Faraday v0.12.1
|
69
|
+
response:
|
70
|
+
status:
|
71
|
+
code: 200
|
72
|
+
message:
|
73
|
+
headers:
|
74
|
+
date:
|
75
|
+
- Thu, 11 May 2017 00:23:19 GMT
|
76
|
+
content-type:
|
77
|
+
- application/json; charset=UTF-8
|
78
|
+
content-length:
|
79
|
+
- '1765'
|
80
|
+
connection:
|
81
|
+
- close
|
82
|
+
server:
|
83
|
+
- nginx/1.11.13
|
84
|
+
access-control-expose-headers:
|
85
|
+
- production
|
86
|
+
production:
|
87
|
+
- 'false'
|
88
|
+
access-control-allow-origin:
|
89
|
+
- "*"
|
90
|
+
access-control-allow-credentials:
|
91
|
+
- 'true'
|
92
|
+
access-control-allow-headers:
|
93
|
+
- origin, x-requested-with, content-type, api_key, token, production, display-errors,
|
94
|
+
api-key, platform, debug, ignore-all-conversion
|
95
|
+
access-control-allow-methods:
|
96
|
+
- PUT, GET, POST, DELETE, OPTIONS
|
97
|
+
x-server:
|
98
|
+
- nginx_spr-sae1-prod-application02
|
99
|
+
front-end-https:
|
100
|
+
- 'on'
|
101
|
+
body:
|
102
|
+
encoding: UTF-8
|
103
|
+
string: '{"status":"OK","messages":[],"content":{"origin_zip_code":"4037003","destination_zip_code":"6396200","platform":"intelipost-gem-test","additional_information":{"extra_cost_absolute":0.0,"lead_time_business_days":0,"free_shipping":false,"delivery_method_ids":[1,2,3],"extra_cost_percentage":0.0,"tax_id":null,"client_type":"gold","sales_channel":"hotsite","payment_type":null,"is_state_tax_payer":null,"shipped_date":null,"calculate_estimated_date_exact":null},"identification":null,"quoting_mode":null,"id":1692119094,"client_id":8554,"created":1494462130059,"created_iso":"2017-05-10T21:22:10.059-03:00","delivery_options":[{"delivery_method_id":2,"delivery_estimate_business_days":8,"provider_shipping_cost":14.87,"final_shipping_cost":14.87,"description":"Correios
|
104
|
+
Sedex","delivery_note":"Entrega domiciliar diferenciada","removed_by_return_modes":false,"removed_by_quote_rules":false,"cubic_weight":null,"delivery_method_type":"EXPRESS","delivery_method_name":"Correios
|
105
|
+
Sedex","logistic_provider_name":"Correios","shown_to_client":true,"scheduling_enabled":false},{"delivery_method_id":1,"delivery_estimate_business_days":12,"provider_shipping_cost":16.45,"final_shipping_cost":16.45,"description":"Correios
|
106
|
+
PAC","delivery_note":"Entrega domiciliar diferenciada","removed_by_return_modes":false,"removed_by_quote_rules":false,"cubic_weight":null,"delivery_method_type":"STANDARD","delivery_method_name":"Correios
|
107
|
+
PAC","logistic_provider_name":"Correios","shown_to_client":true,"scheduling_enabled":false}],"volumes":[{"weight":0.1,"cost_of_goods":100.0,"width":10.0,"height":10.0,"length":10.0,"description":null,"sku_groups_ids":null,"product_category":null,"volume_type":"BOX"}],"cached":false},"time":"3.7
|
108
|
+
ms","timezone":"America/Sao_Paulo","locale":"pt_BR"}'
|
109
|
+
http_version:
|
110
|
+
recorded_at: Thu, 11 May 2017 00:23:19 GMT
|
111
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,59 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://api.intelipost.com.br/api/v1/cep_location/address_complete/04661100
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
platform:
|
11
|
+
- intelipost-gem-test
|
12
|
+
User-Agent:
|
13
|
+
- Faraday v0.12.1
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message:
|
18
|
+
headers:
|
19
|
+
date:
|
20
|
+
- Thu, 11 May 2017 00:23:20 GMT
|
21
|
+
content-type:
|
22
|
+
- application/json; charset=UTF-8
|
23
|
+
content-length:
|
24
|
+
- '322'
|
25
|
+
connection:
|
26
|
+
- close
|
27
|
+
server:
|
28
|
+
- nginx/1.11.13
|
29
|
+
access-control-expose-headers:
|
30
|
+
- production
|
31
|
+
production:
|
32
|
+
- 'false'
|
33
|
+
access-control-allow-origin:
|
34
|
+
- "*"
|
35
|
+
access-control-allow-credentials:
|
36
|
+
- 'true'
|
37
|
+
access-control-allow-headers:
|
38
|
+
- origin, x-requested-with, content-type, api_key, token, production, display-errors,
|
39
|
+
api-key, platform, debug, ignore-all-conversion
|
40
|
+
access-control-allow-methods:
|
41
|
+
- PUT, GET, POST, DELETE, OPTIONS
|
42
|
+
x-server:
|
43
|
+
- nginx_spr-sae1-prod-application03
|
44
|
+
front-end-https:
|
45
|
+
- 'on'
|
46
|
+
body:
|
47
|
+
encoding: ASCII-8BIT
|
48
|
+
string: !binary |-
|
49
|
+
eyJzdGF0dXMiOiJPSyIsIm1lc3NhZ2VzIjpbXSwiY29udGVudCI6eyJzdGF0
|
50
|
+
ZSI6IlPDo28gUGF1bG8iLCJjaXR5IjoiU8OjbyBQYXVsbyIsIm5laWdoYm9y
|
51
|
+
aG9vZCI6IkphcmRpbSBVbXVhcmFtYSIsInN0cmVldCI6IkF2ZW5pZGEgSW50
|
52
|
+
ZXJsYWdvcyIsInN0YXRlX3Nob3J0IjoiU1AiLCJpYmdlIjoiMzU1MDMwOCIs
|
53
|
+
ImFkZGl0aW9uYWxfaW5mbyI6Ii0gZGUgODcxIGEgMjI1MSAtIGxhZG8gw61t
|
54
|
+
cGFyIiwiYmFpcnJvIjoiSmFyZGltIFVtdWFyYW1hIn0sInRpbWUiOiIwLjEg
|
55
|
+
bXMiLCJ0aW1lem9uZSI6IkFtZXJpY2EvU2FvX1BhdWxvIiwibG9jYWxlIjoi
|
56
|
+
cHRfQlIifQ==
|
57
|
+
http_version:
|
58
|
+
recorded_at: Thu, 11 May 2017 00:23:20 GMT
|
59
|
+
recorded_with: VCR 2.9.3
|
@@ -72,10 +72,11 @@ describe Intelipost::Client, :vcr do
|
|
72
72
|
context "dealing with zipcode (cep)" do
|
73
73
|
it "returns a Intelipost::Mash on successful query" do
|
74
74
|
response = subject.cep.address_complete.get("04661100")
|
75
|
+
|
75
76
|
expect(response.class).to eq Intelipost::Mash
|
76
77
|
expect(response.success?).to eq true
|
77
78
|
expect(response.failure?).to eq false
|
78
|
-
expect(response.all_messages).to
|
79
|
+
expect(response.all_messages).to be_empty
|
79
80
|
expect(response.messages).to be_empty
|
80
81
|
end
|
81
82
|
end
|
@@ -102,20 +103,21 @@ describe Intelipost::Client, :vcr do
|
|
102
103
|
"lead_time_business_days" => 0,
|
103
104
|
"sales_channel" => "hotsite",
|
104
105
|
"client_type" => "gold",
|
105
|
-
"delivery_method_ids" => [
|
106
|
+
"delivery_method_ids" => [1, 2, 3]
|
106
107
|
}
|
107
108
|
}
|
108
109
|
end
|
109
110
|
|
110
111
|
it ".quote.create" do
|
111
|
-
|
112
|
+
response = subject.quote.create(volumes)
|
113
|
+
expect(response).to have_key(:content)
|
112
114
|
end
|
113
115
|
|
114
116
|
it ".quote.create.failure" do
|
115
|
-
response = subject.quote.create(
|
117
|
+
response = subject.quote.create(failure: 'failure')
|
116
118
|
expect(response.success?).to eq false
|
117
119
|
expect(response.failure?).to eq true
|
118
|
-
expect(response.all_messages).not_to
|
120
|
+
expect(response.all_messages).not_to be_empty
|
119
121
|
expect(response.messages).not_to be_empty
|
120
122
|
end
|
121
123
|
|
@@ -1,19 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
describe Intelipost::Mash do
|
2
4
|
it 'will create a intelipost mash and check if it is a success response' do
|
3
|
-
mash = Intelipost::Mash.new(
|
5
|
+
mash = Intelipost::Mash.new(status: 'OK')
|
6
|
+
|
4
7
|
expect(mash.success?).to eq true
|
5
8
|
expect(mash.failure?).to eq false
|
6
9
|
expect(mash.all_messages).to eq nil
|
7
10
|
end
|
8
11
|
|
9
12
|
it 'will create a intelipost mash and check if it is a failure response' do
|
10
|
-
mash = Intelipost::Mash.new(
|
11
|
-
|
12
|
-
|
13
|
-
|
13
|
+
mash = Intelipost::Mash.new(
|
14
|
+
messages: [
|
15
|
+
{ text: 'some error message' },
|
16
|
+
{ text: 'some error message2' }
|
17
|
+
]
|
18
|
+
)
|
19
|
+
|
14
20
|
expect(mash.success?).to eq false
|
15
21
|
expect(mash.failure?).to eq true
|
16
22
|
expect(mash.all_messages).to eq 'some error message;some error message2'
|
17
23
|
end
|
18
24
|
|
19
|
-
|
25
|
+
it 'should override length to avoid conflict with Hash#length method' do
|
26
|
+
mash = Intelipost::Mash.new(length: 42)
|
27
|
+
expect(mash.length).to eq 42
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should override key to avoid conflict with Hash#key method' do
|
31
|
+
mash = Intelipost::Mash.new(key: 'api-or-other-key')
|
32
|
+
expect(mash.key).to eq 'api-or-other-key'
|
33
|
+
end
|
34
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -14,10 +14,15 @@ require 'vcr'
|
|
14
14
|
Dotenv.load
|
15
15
|
|
16
16
|
VCR.configure do |c|
|
17
|
+
c.default_cassette_options = { record: :new_episodes }
|
17
18
|
c.cassette_library_dir = 'spec/cassettes'
|
18
|
-
c.hook_into :webmock
|
19
|
+
c.hook_into :webmock, :faraday
|
19
20
|
c.configure_rspec_metadata!
|
20
21
|
c.ignore_hosts 'codeclimate.com'
|
22
|
+
|
23
|
+
c.before_record do |i|
|
24
|
+
i.request.headers.delete('api_key')
|
25
|
+
end
|
21
26
|
end
|
22
27
|
|
23
28
|
RSpec.configure do |config|
|
@@ -25,5 +30,5 @@ RSpec.configure do |config|
|
|
25
30
|
c.syntax = :expect
|
26
31
|
end
|
27
32
|
|
28
|
-
config.order =
|
33
|
+
config.order = 'random'
|
29
34
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: intelipost-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Celestino Gomes
|
@@ -9,50 +9,68 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-05-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 0.11
|
20
|
+
version: '0.11'
|
21
|
+
- - "<"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: '1.0'
|
21
24
|
type: :runtime
|
22
25
|
prerelease: false
|
23
26
|
version_requirements: !ruby/object:Gem::Requirement
|
24
27
|
requirements:
|
25
|
-
- - "
|
28
|
+
- - ">="
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '0.11'
|
31
|
+
- - "<"
|
26
32
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
33
|
+
version: '1.0'
|
28
34
|
- !ruby/object:Gem::Dependency
|
29
35
|
name: faraday_middleware
|
30
36
|
requirement: !ruby/object:Gem::Requirement
|
31
37
|
requirements:
|
32
|
-
- - "
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.11'
|
41
|
+
- - "<"
|
33
42
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
43
|
+
version: '1.0'
|
35
44
|
type: :runtime
|
36
45
|
prerelease: false
|
37
46
|
version_requirements: !ruby/object:Gem::Requirement
|
38
47
|
requirements:
|
39
|
-
- - "
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '0.11'
|
51
|
+
- - "<"
|
40
52
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
53
|
+
version: '1.0'
|
42
54
|
- !ruby/object:Gem::Dependency
|
43
55
|
name: hashie
|
44
56
|
requirement: !ruby/object:Gem::Requirement
|
45
57
|
requirements:
|
46
|
-
- - "
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '3.5'
|
61
|
+
- - "<"
|
47
62
|
- !ruby/object:Gem::Version
|
48
|
-
version: 3.
|
63
|
+
version: '3.6'
|
49
64
|
type: :runtime
|
50
65
|
prerelease: false
|
51
66
|
version_requirements: !ruby/object:Gem::Requirement
|
52
67
|
requirements:
|
53
|
-
- - "
|
68
|
+
- - ">="
|
54
69
|
- !ruby/object:Gem::Version
|
55
|
-
version: 3.
|
70
|
+
version: '3.5'
|
71
|
+
- - "<"
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '3.6'
|
56
74
|
- !ruby/object:Gem::Dependency
|
57
75
|
name: bundler
|
58
76
|
requirement: !ruby/object:Gem::Requirement
|
@@ -60,6 +78,9 @@ dependencies:
|
|
60
78
|
- - ">="
|
61
79
|
- !ruby/object:Gem::Version
|
62
80
|
version: 1.7.6
|
81
|
+
- - "<"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '1.15'
|
63
84
|
type: :development
|
64
85
|
prerelease: false
|
65
86
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -67,11 +88,17 @@ dependencies:
|
|
67
88
|
- - ">="
|
68
89
|
- !ruby/object:Gem::Version
|
69
90
|
version: 1.7.6
|
91
|
+
- - "<"
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '1.15'
|
70
94
|
- !ruby/object:Gem::Dependency
|
71
95
|
name: rake
|
72
96
|
requirement: !ruby/object:Gem::Requirement
|
73
97
|
requirements:
|
74
98
|
- - "~>"
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '10.4'
|
101
|
+
- - ">="
|
75
102
|
- !ruby/object:Gem::Version
|
76
103
|
version: 10.4.2
|
77
104
|
type: :development
|
@@ -79,6 +106,9 @@ dependencies:
|
|
79
106
|
version_requirements: !ruby/object:Gem::Requirement
|
80
107
|
requirements:
|
81
108
|
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '10.4'
|
111
|
+
- - ">="
|
82
112
|
- !ruby/object:Gem::Version
|
83
113
|
version: 10.4.2
|
84
114
|
- !ruby/object:Gem::Dependency
|
@@ -86,6 +116,9 @@ dependencies:
|
|
86
116
|
requirement: !ruby/object:Gem::Requirement
|
87
117
|
requirements:
|
88
118
|
- - "~>"
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '3.2'
|
121
|
+
- - ">="
|
89
122
|
- !ruby/object:Gem::Version
|
90
123
|
version: 3.2.0
|
91
124
|
type: :development
|
@@ -93,6 +126,9 @@ dependencies:
|
|
93
126
|
version_requirements: !ruby/object:Gem::Requirement
|
94
127
|
requirements:
|
95
128
|
- - "~>"
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '3.2'
|
131
|
+
- - ">="
|
96
132
|
- !ruby/object:Gem::Version
|
97
133
|
version: 3.2.0
|
98
134
|
- !ruby/object:Gem::Dependency
|
@@ -100,6 +136,9 @@ dependencies:
|
|
100
136
|
requirement: !ruby/object:Gem::Requirement
|
101
137
|
requirements:
|
102
138
|
- - "~>"
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: '2.9'
|
141
|
+
- - ">="
|
103
142
|
- !ruby/object:Gem::Version
|
104
143
|
version: 2.9.3
|
105
144
|
type: :development
|
@@ -107,50 +146,59 @@ dependencies:
|
|
107
146
|
version_requirements: !ruby/object:Gem::Requirement
|
108
147
|
requirements:
|
109
148
|
- - "~>"
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '2.9'
|
151
|
+
- - ">="
|
110
152
|
- !ruby/object:Gem::Version
|
111
153
|
version: 2.9.3
|
112
154
|
- !ruby/object:Gem::Dependency
|
113
|
-
name:
|
155
|
+
name: dotenv
|
114
156
|
requirement: !ruby/object:Gem::Requirement
|
115
157
|
requirements:
|
116
158
|
- - "~>"
|
117
159
|
- !ruby/object:Gem::Version
|
118
|
-
version: '
|
160
|
+
version: '2.0'
|
161
|
+
- - ">="
|
162
|
+
- !ruby/object:Gem::Version
|
163
|
+
version: 2.0.1
|
119
164
|
type: :development
|
120
165
|
prerelease: false
|
121
166
|
version_requirements: !ruby/object:Gem::Requirement
|
122
167
|
requirements:
|
123
168
|
- - "~>"
|
124
169
|
- !ruby/object:Gem::Version
|
125
|
-
version: '
|
170
|
+
version: '2.0'
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 2.0.1
|
126
174
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
175
|
+
name: webmock
|
128
176
|
requirement: !ruby/object:Gem::Requirement
|
129
177
|
requirements:
|
130
|
-
- -
|
178
|
+
- - '='
|
131
179
|
- !ruby/object:Gem::Version
|
132
|
-
version:
|
180
|
+
version: 2.3.2
|
133
181
|
type: :development
|
134
182
|
prerelease: false
|
135
183
|
version_requirements: !ruby/object:Gem::Requirement
|
136
184
|
requirements:
|
137
|
-
- -
|
185
|
+
- - '='
|
138
186
|
- !ruby/object:Gem::Version
|
139
|
-
version:
|
187
|
+
version: 2.3.2
|
140
188
|
- !ruby/object:Gem::Dependency
|
141
|
-
name:
|
189
|
+
name: simplecov
|
142
190
|
requirement: !ruby/object:Gem::Requirement
|
143
191
|
requirements:
|
144
192
|
- - "~>"
|
145
193
|
- !ruby/object:Gem::Version
|
146
|
-
version:
|
194
|
+
version: '0.10'
|
147
195
|
type: :development
|
148
196
|
prerelease: false
|
149
197
|
version_requirements: !ruby/object:Gem::Requirement
|
150
198
|
requirements:
|
151
199
|
- - "~>"
|
152
200
|
- !ruby/object:Gem::Version
|
153
|
-
version:
|
201
|
+
version: '0.10'
|
154
202
|
- !ruby/object:Gem::Dependency
|
155
203
|
name: codeclimate-test-reporter
|
156
204
|
requirement: !ruby/object:Gem::Requirement
|
@@ -190,6 +238,10 @@ files:
|
|
190
238
|
- lib/intelipost/quote.rb
|
191
239
|
- lib/intelipost/shipment_order.rb
|
192
240
|
- lib/intelipost/version.rb
|
241
|
+
- spec/cassettes/Intelipost_Client/dealing_with_Quotes/_quote_create.yml
|
242
|
+
- spec/cassettes/Intelipost_Client/dealing_with_Quotes/_quote_create_failure.yml
|
243
|
+
- spec/cassettes/Intelipost_Client/dealing_with_Quotes/_quote_get_.yml
|
244
|
+
- spec/cassettes/Intelipost_Client/dealing_with_zipcode_cep_/returns_a_Intelipost_Mash_on_successful_query.yml
|
193
245
|
- spec/lib/intelipost/cep_spec.rb
|
194
246
|
- spec/lib/intelipost/client_spec.rb
|
195
247
|
- spec/lib/intelipost/mash_spec.rb
|
@@ -216,11 +268,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
216
268
|
version: '0'
|
217
269
|
requirements: []
|
218
270
|
rubyforge_project:
|
219
|
-
rubygems_version: 2.
|
271
|
+
rubygems_version: 2.5.2
|
220
272
|
signing_key:
|
221
273
|
specification_version: 4
|
222
274
|
summary: Gem to access the REST API of Intelipost
|
223
275
|
test_files:
|
276
|
+
- spec/cassettes/Intelipost_Client/dealing_with_Quotes/_quote_create.yml
|
277
|
+
- spec/cassettes/Intelipost_Client/dealing_with_Quotes/_quote_create_failure.yml
|
278
|
+
- spec/cassettes/Intelipost_Client/dealing_with_Quotes/_quote_get_.yml
|
279
|
+
- spec/cassettes/Intelipost_Client/dealing_with_zipcode_cep_/returns_a_Intelipost_Mash_on_successful_query.yml
|
224
280
|
- spec/lib/intelipost/cep_spec.rb
|
225
281
|
- spec/lib/intelipost/client_spec.rb
|
226
282
|
- spec/lib/intelipost/mash_spec.rb
|