correios_sigep 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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