correios_sigep 0.1.1 → 0.2.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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MWM2MTI5Yzk4NjdhOTNiMjVjMDg2YTM5ZDgxNDZkY2E2Y2Q3MTY4OA==
4
+ Y2FhYzFlYjAxZmJiOWRjNjI2MDVmMDk4ODk5ZjFkMDZhYWNkOTZlMA==
5
5
  data.tar.gz: !binary |-
6
- NGViYTA4NjY1MzdiMGJjOTBjMWJiNjA1ZjMwNzk4ZmI3YTZmZTllOQ==
6
+ NDFhMGYyMzU0NzBhMzI2MDRjYjQ5ODQ2NTQ5ZDhmYWE4NmQ4MjI2OQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NjU5YjUzZTVjY2Q0ZDg3OWMwNDRkNDFkOGM5MjE0YmM5MDE4NDU5MmI2YjY1
10
- N2UxMGEzZjgzZTVlZWUyMzgwYzJhNjFkMWNlYThkZjEzMTk5ZWVmOTQ3ZjFm
11
- NWZlMTQ3ZTJjZWFkNzg0YjhiZDFlNTY1NDVjNjI0YzE5NzJiZDU=
9
+ YjRlYzY1YWI1MGZhNDBlODIwNzVjZjFmMDhmNWVjMmE4NWNiNThhNzRlNjE0
10
+ YTI2YWMzZjQ3N2JlMjk2MDg0ZmU5MTc4NjMyYjUzODc5NGQ2NmIxNjU4MzY2
11
+ ODkzNjFiYjZhY2M2MzUwMjU3NzM4OWQyZDkyZTY4M2UzNTE4OWM=
12
12
  data.tar.gz: !binary |-
13
- NmRhMGJjNjY0N2QxYmI5YWUyYzIxYmYzYWY5OTQ3MDQ2MmIxNmU3N2FlZDlj
14
- ZDdkYzBjMDMyZWUyMDIyMThkN2RkYTQ5MzViY2Q1ODFkNjgyNjU5MmYxN2Jh
15
- ZWNiZGFkOTg4NzFlYjMxMmI5NmNjNTA5YTk2ZGIzMmFmNGIyMWI=
13
+ ZDVmMWIzZDBkMWNiZjViNzkzOWVmMmMxYThlZTMwOGI0NTFkYzM0ZTNmMDNl
14
+ MTAxOTBjMGRjNzMxN2Q0ZWEyNWY4ZGY5OGIyZmMwNWQyOGM1NWI0NGY5ZmQy
15
+ ZjJhMTFkMDI2NDM1Y2FkZDJkNTFlOWE0ZDc3MmU5NGQyNDZjZTU=
@@ -1,4 +1,5 @@
1
1
  require 'correios_sigep/version'
2
+ require 'correios_sigep/models/administrative_fields'
2
3
  require 'correios_sigep/configuration'
3
4
  require 'correios_sigep/builders/xml/recipient'
4
5
  require 'correios_sigep/builders/xml/sender'
@@ -2,18 +2,19 @@ module CorreiosSigep
2
2
  module Builders
3
3
  module XML
4
4
  class Authentication
5
- def initialize(builder)
5
+ def initialize(builder, administrative_fields)
6
6
  @builder = builder
7
7
  @config = CorreiosSigep.configuration
8
+ @administrative_fields = administrative_fields
8
9
  end
9
10
 
10
11
  def build_xml!
11
12
  add_node "usuario", @config.user
12
13
  add_node "senha", @config.password
13
- add_node "codAdministrativo", @config.administrative_code
14
- add_node "contrato", @config.contract
15
- add_node "codigo_servico", @config.service_code
16
- add_node "cartao", @config.card
14
+ add_node "codAdministrativo", @administrative_fields.administrative_code
15
+ add_node "contrato", @administrative_fields.contract
16
+ add_node "codigo_servico", @administrative_fields.service_code
17
+ add_node "cartao", @administrative_fields.card
17
18
  end
18
19
 
19
20
  private
@@ -3,9 +3,12 @@ module CorreiosSigep
3
3
  module XML
4
4
  class Request
5
5
 
6
- def self.build_xml(request)
6
+ def self.build_xml(request, overrides={})
7
+ config = CorreiosSigep.configuration
7
8
  document = Nokogiri::XML(request.to_xml)
8
- XML::Authentication.new(document).build_xml!
9
+ administrative_fields =
10
+ overrides[:administrative] || config.administrative_fields
11
+ XML::Authentication.new(document, administrative_fields).build_xml!
9
12
 
10
13
  document
11
14
  .to_xml(save_with: Nokogiri::XML::Node::SaveOptions::NO_DECLARATION)
@@ -2,5 +2,13 @@ module CorreiosSigep
2
2
  class Configuration
3
3
  attr_accessor :administrative_code, :card, :contract, :password,
4
4
  :service_code, :user, :wsdl_base_url, :proxy
5
+
6
+ def administrative_fields
7
+ @administrative_fields ||=
8
+ Models::AdministrativeFields.new(administrative_code: administrative_code,
9
+ card: card, contract: contract,
10
+ service_code: service_code)
11
+
12
+ end
5
13
  end
6
14
  end
@@ -0,0 +1,14 @@
1
+ module CorreiosSigep
2
+ module Models
3
+ class AdministrativeFields
4
+ attr_accessor :administrative_code, :card, :contract, :service_code
5
+
6
+ def initialize(options={})
7
+ self.administrative_code = options[:administrative_code]
8
+ self.card = options[:card]
9
+ self.contract = options[:contract]
10
+ self.service_code = options[:service_code]
11
+ end
12
+ end
13
+ end
14
+ end
@@ -1,3 +1,3 @@
1
1
  module CorreiosSigep
2
- VERSION = '0.1.1'
2
+ VERSION = '0.2.0'
3
3
  end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+ require 'pry'
3
+
4
+ module CorreiosSigep
5
+ module Builders
6
+ module XML
7
+ describe Request do
8
+ describe '.build_xml' do
9
+ let(:request) { double(:request, to_xml: '<root><test></root>') }
10
+ context 'when do not override anything' do
11
+ it 'builds a Authentication XML with Configuration parameters' do
12
+ expected_response = [
13
+ '<cartao>0057018901</cartao>',
14
+ '<codigo_servico>41076</codigo_servico>',
15
+ '<contrato>9912208555</contrato>',
16
+ '<codAdministrativo>08082650</codAdministrativo>',
17
+ '<senha>8o8otn</senha>',
18
+ '<usuario>60618043</usuario><test/>'
19
+ ].join + "\n"
20
+ expect(described_class.build_xml request).to eq expected_response
21
+ end
22
+ end
23
+
24
+ context 'when override the administrative fields' do
25
+ it 'builds a Authentication XML with the override parameter' do
26
+ administrative_fields = Models::AdministrativeFields.new(administrative_code: 'adm123',
27
+ card: 'card123',
28
+ contract: 'cont123',
29
+ service_code: 'ser123')
30
+ expected_response = [
31
+ '<cartao>card123</cartao>',
32
+ '<codigo_servico>ser123</codigo_servico>',
33
+ '<contrato>cont123</contrato>',
34
+ '<codAdministrativo>adm123</codAdministrativo>',
35
+ '<senha>8o8otn</senha>',
36
+ '<usuario>60618043</usuario><test/>'
37
+ ].join + "\n"
38
+ expect(described_class.build_xml request, administrative: administrative_fields).to eq expected_response
39
+ end
40
+ end
41
+
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: correios_sigep
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carlos Ribeiro
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-06-02 00:00:00.000000000 Z
12
+ date: 2015-06-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: savon
@@ -131,6 +131,7 @@ files:
131
131
  - lib/correios_sigep/logistic_reverse/base_client.rb
132
132
  - lib/correios_sigep/logistic_reverse/request_collect_number.rb
133
133
  - lib/correios_sigep/logistic_reverse/request_sro.rb
134
+ - lib/correios_sigep/models/administrative_fields.rb
134
135
  - lib/correios_sigep/models/collect.rb
135
136
  - lib/correios_sigep/models/correios_response_codes.rb
136
137
  - lib/correios_sigep/models/errors/collect_not_answered_for_the_zipcode.rb
@@ -149,6 +150,7 @@ files:
149
150
  - lib/correios_sigep/models/sro.rb
150
151
  - lib/correios_sigep/version.rb
151
152
  - spec/correios_sigep/builders/xml/request_collect_number_spec.rb
153
+ - spec/correios_sigep/builders/xml/request_spec.rb
152
154
  - spec/correios_sigep/builders/xml/request_sro_spec.rb
153
155
  - spec/correios_sigep/configuration_spec.rb
154
156
  - spec/correios_sigep/logistic_reverse/base_client_spec.rb
@@ -202,6 +204,7 @@ specification_version: 4
202
204
  summary: A gem that integrates with Correios SIGEP WEB.
203
205
  test_files:
204
206
  - spec/correios_sigep/builders/xml/request_collect_number_spec.rb
207
+ - spec/correios_sigep/builders/xml/request_spec.rb
205
208
  - spec/correios_sigep/builders/xml/request_sro_spec.rb
206
209
  - spec/correios_sigep/configuration_spec.rb
207
210
  - spec/correios_sigep/logistic_reverse/base_client_spec.rb