fastshop_catalog 0.0.7 → 0.0.8

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
  SHA1:
3
- metadata.gz: 30d3f10c0b09c6cd91d0d70a9581bc08a0f32b0f
4
- data.tar.gz: b5ad556c0c926ee60f379374338ceb1489f5933b
3
+ metadata.gz: d68f0540ed875634364fe3981b000ccbfe1399df
4
+ data.tar.gz: 934adc99a896278af769a3912d69d4adaf4f1fe6
5
5
  SHA512:
6
- metadata.gz: 23861e9bf14e1683d5047f892671fd43c648fce4945778454bc2dcc511b362fc1d9697803d96bdfa91914c303cbb0c37967a03cfbd498a40102ea3d2d01b21ab
7
- data.tar.gz: b9561a2116aca37af5c65778f2436716316e4d09c8f2b5ea37613c2392f36d18aa840ea72381be51931bfc890b5e782338253dd8a6435895b80c9d82ba60d9e5
6
+ metadata.gz: 84293e29c8ed9450566cdf92a624b82b650ac3861ffc8c634003a84fe8db31915fe8c822ac9e913fcffd37616a3dfad72d9f1a9707a0e516090f1c9ca7075b1d
7
+ data.tar.gz: cc0d60e81043a39d5965edbd4bd0d1b579c00c2f99246eadc5ce35d0b813b058aa2786e0fc0537d480e298591f48cecd66c94ca880cb0ae7867ef1dc455c7aa3
@@ -17,4 +17,5 @@ require_relative "fastshop_catalog/check_availability_service"
17
17
  require_relative "fastshop_catalog/order_status_service"
18
18
  require_relative "fastshop_catalog/participant_service"
19
19
  require_relative "fastshop_catalog/service_exception"
20
+ require_relative "fastshop_catalog/service_urls"
20
21
  HTTPI.log_level = :info
@@ -4,8 +4,6 @@ module FastshopCatalog
4
4
  AUX_LOG = Logger.new(STDOUT)
5
5
  AUX_LOG.level = Logger::WARN
6
6
 
7
- DEFAULT_BASE_URL = 'http://www.fastincentivos.com.br'
8
-
9
7
  class << self
10
8
  attr_accessor :log_level
11
9
  attr_accessor :base_url
@@ -13,7 +11,11 @@ module FastshopCatalog
13
11
  end
14
12
 
15
13
  def service_url
16
- @service_url ||= "#{FastshopCatalog::BaseService.base_url || DEFAULT_BASE_URL}/#{@service}"
14
+ env = "development"
15
+
16
+ env = Rails.env if defined?(Rails)
17
+ url_service = FastshopCatalog::ServiceUrls.new(env)
18
+ @service_url ||= url_service.url_for(@service)
17
19
  end
18
20
 
19
21
  def action
@@ -23,7 +25,7 @@ module FastshopCatalog
23
25
  def self.camelize(val)
24
26
  val.to_s.split('_').map {|w| w.capitalize}.join
25
27
  end
26
-
28
+
27
29
  def encrypt(payload)
28
30
  require_relative 'crypto'
29
31
  Crypto.new.encrypt(payload.to_s)
@@ -31,9 +33,9 @@ module FastshopCatalog
31
33
 
32
34
  def initialize(params={})
33
35
  @@log_level ||= :info
34
- default_params = {:wsdl => "#{service_url}?wsdl", :soap_version => 2, :namespaces =>
35
- {"xmlns:x" => "http://www.w3.org/2005/08/addressing"}, :soap_header =>
36
- {"x:To" => service_url, "x:Action" => "http://tempuri.org/#{action}"}, :log_level =>
36
+ default_params = {:wsdl => "#{service_url}?wsdl", :soap_version => 2, :namespaces =>
37
+ {"xmlns:x" => "http://www.w3.org/2005/08/addressing"}, :soap_header =>
38
+ {"x:To" => service_url, "x:Action" => "http://tempuri.org/#{action}"}, :log_level =>
37
39
  @log_level}
38
40
  @client = Savon.client(recursive_merge(default_params, params))
39
41
  HTTPI.log = false
@@ -50,7 +52,7 @@ module FastshopCatalog
50
52
  end
51
53
  result[@return_key]
52
54
  end
53
-
55
+
54
56
  def service_invoker_with_encryption(encrypted_payload_key, parameters={})
55
57
  encrypted_payload = encrypt(parameters[encrypted_payload_key])
56
58
  FastshopCatalog::BaseService::AUX_LOG.debug('Encrypted payload: ' + encrypted_payload)
@@ -2,7 +2,7 @@ module FastshopCatalog
2
2
  class CatalogService < FastshopCatalog::BaseService
3
3
 
4
4
  def initialize
5
- @service = 'FastServices.WsCatalogo/Catalogo.svc/service'
5
+ @service = :catalogo
6
6
  @interface = 'ICatalogo'
7
7
  @soap_method = :busca_catalogo
8
8
  @return_key = 'Lista'
@@ -2,7 +2,7 @@ module FastshopCatalog
2
2
  class CheckAvailabilityService < FastshopCatalog::BaseService
3
3
 
4
4
  def initialize
5
- @service = 'FastServices.WsConsultaDisponibilidade/ConsultaDisponibilidade.svc/service'
5
+ @service = :consulta_disponibilidade
6
6
  @interface = 'IConsultaDisponibilidade'
7
7
  @soap_method = :retorna_dados
8
8
  @return_key = 'Disponibilidade'
@@ -2,7 +2,7 @@ module FastshopCatalog
2
2
  class ExternalDneService < FastshopCatalog::BaseService
3
3
 
4
4
  def initialize
5
- @service = 'FastServices.WsConsultaDneExterno/ConsultaDneExterno.svc/service'
5
+ @service = :consulta_dne_externo
6
6
  @interface = 'IConsultaDneExterno'
7
7
  @soap_method = :consultar
8
8
  @return_key = 'Dne'
@@ -2,7 +2,7 @@ module FastshopCatalog
2
2
  class OrderPlacementService < FastshopCatalog::BaseService
3
3
 
4
4
  def initialize
5
- @service = 'FastServices.WsColocacaoPedido/ColocacaoPedido.svc/service'
5
+ @service = :colocacao_pedido
6
6
  @interface = 'IColocacaoPedido'
7
7
  @soap_method = :incluir_pedido
8
8
  @return_key = 'NumeroPedidoFast'
@@ -2,7 +2,7 @@ module FastshopCatalog
2
2
  class OrderStatusService < FastshopCatalog::BaseService
3
3
 
4
4
  def initialize
5
- @service = 'FastServices.WsConsultaStatusPedido/ConsultaStatusPedido.svc/service'
5
+ @service = :consulta_status
6
6
  @interface = 'IConsultaStatusPedido'
7
7
  @soap_method = :retorna_dados
8
8
  @return_key = 'Lista'
@@ -2,7 +2,7 @@ module FastshopCatalog
2
2
  class ParticipantService < FastshopCatalog::BaseService
3
3
 
4
4
  def initialize
5
- @service = 'FastServices.WsParticipante/Participante.svc/service'
5
+ @service = :participante
6
6
  @interface = 'IParticipante'
7
7
  @soap_method = :cadastrar_participante
8
8
  @return_key = 'Token'
@@ -12,7 +12,7 @@ module FastshopCatalog
12
12
  def insert(participant)
13
13
  payload = participant.to_json.to_s
14
14
  AUX_LOG.debug('Participant as json: ' + payload)
15
- service_invoker_with_encryption('entrada', 'contrato' => participant.contract_code,
15
+ service_invoker_with_encryption('entrada', 'contrato' => participant.contract_code,
16
16
  'entrada' => payload)
17
17
  end
18
18
 
@@ -2,7 +2,7 @@ module FastshopCatalog
2
2
  class ProductService < FastshopCatalog::BaseService
3
3
 
4
4
  def initialize
5
- @service = 'FastServices.WsConsultaProduto/ConsultaProduto.svc/service'
5
+ @service = :consulta_produto
6
6
  @interface = 'IConsultaProduto'
7
7
  @soap_method = :busca_produto
8
8
  @return_key = 'ProdutoDados'
@@ -0,0 +1,41 @@
1
+ module FastshopCatalog
2
+ class ServiceUrls
3
+ DEFAULT_BASE_URL = 'http://www.fastincentivos.com.br'
4
+
5
+ PRODUCTION_URLS = {
6
+ catalogo: "http://www.fastincentivos.com.br:8081/Catalogo.svc/service",
7
+ consulta_disponibilidade: "http://www.fastincentivos.com.br:8084/ConsultaDisponibilidade.svc/service",
8
+ consulta_dne_externo: "http://www.fastincentivos.com.br:8086/ConsultaDneExterno.svc/service",
9
+ colocacao_pedido: "http://www.fastincentivos.com.br:8082/ColocacaoPedido.svc/service",
10
+ consulta_status: "http://www.fastincentivos.com.br:8090/ConsultaStatusPedido.svc/service",
11
+ participante: "http://www.fastincentivos.com.br:8093/Participante.svc/service",
12
+ consulta_produto: "#{DEFAULT_BASE_URL}/FastServices.WsConsultaProduto/ConsultaProduto.svc/service"
13
+ }
14
+
15
+ HOMOLOG_URLS = {
16
+ catalogo: "#{DEFAULT_BASE_URL}/FastServices.WsCatalogo/Catalogo.svc/service",
17
+ consulta_disponibilidade: "#{DEFAULT_BASE_URL}/FastServices.WsConsultaDisponibilidade/ConsultaDisponibilidade.svc/service",
18
+ consulta_dne_externo: "#{DEFAULT_BASE_URL}/FastServices.WsConsultaDneExterno/ConsultaDneExterno.svc/service",
19
+ colocacao_pedido: "#{DEFAULT_BASE_URL}/FastServices.WsColocacaoPedido/ColocacaoPedido.svc/service",
20
+ consulta_status: "#{DEFAULT_BASE_URL}/FastServices.WsConsultaStatusPedido/ConsultaStatusPedido.svc/service",
21
+ participante: "#{DEFAULT_BASE_URL}/FastServices.WsParticipante/Participante.svc/service",
22
+ consulta_produto: "#{DEFAULT_BASE_URL}/FastServices.WsConsultaProduto/ConsultaProduto.svc/service"
23
+ }
24
+ attr_reader :env
25
+
26
+ def initialize(env)
27
+ @env = env
28
+ end
29
+
30
+ def url_for(serv)
31
+ url = ""
32
+ if env == "production"
33
+ url = PRODUCTION_URLS.fetch(serv)
34
+ else
35
+ url = HOMOLOG_URLS.fetch(serv)
36
+ end
37
+
38
+ url
39
+ end
40
+ end
41
+ end
@@ -1,3 +1,3 @@
1
1
  module FastshopCatalog
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
@@ -9,13 +9,13 @@ describe FastshopCatalog::BaseService do
9
9
  end
10
10
 
11
11
  end
12
-
12
+
13
13
  describe "initialization" do
14
-
14
+
15
15
  let(:service) do
16
16
  class TempService < FastshopCatalog::BaseService
17
17
  def initialize
18
- @service = 'SomePath/some_service'
18
+ @service = :catalogo
19
19
  @interface = 'ISomeInterface'
20
20
  @soap_method = :some_method
21
21
  @return_key = 'SomeName'
@@ -25,16 +25,6 @@ describe FastshopCatalog::BaseService do
25
25
  TempService.new
26
26
  end
27
27
 
28
- it 'should return the correct service_url' do
29
- expect(service.service_url).to eq('http://www.fastincentivos.com.br/SomePath/some_service')
30
- end
31
-
32
- it 'should return the correct service_url if base_url changed' do
33
- FastshopCatalog::BaseService.base_url = 'http://yourserverhere.com'
34
- expect(service.service_url).to eq('http://yourserverhere.com/SomePath/some_service')
35
- FastshopCatalog::BaseService.base_url = FastshopCatalog::BaseService::DEFAULT_BASE_URL
36
- end
37
-
38
28
  it 'should return the correct action' do
39
29
  expect(service.action).to eq('ISomeInterface/SomeMethod')
40
30
  end
@@ -0,0 +1,20 @@
1
+ require "spec_helper"
2
+
3
+ describe FastshopCatalog::ServiceUrls do
4
+ it "should return homolog url" do
5
+ subject = FastshopCatalog::ServiceUrls.new("development")
6
+
7
+ url = subject.url_for(:catalogo)
8
+
9
+ expect(url).to eql("http://www.fastincentivos.com.br/FastServices.WsCatalogo/Catalogo.svc/service")
10
+ end
11
+
12
+ it "should return production url" do
13
+ subject = FastshopCatalog::ServiceUrls.new("production")
14
+
15
+ url = subject.url_for(:catalogo)
16
+
17
+ expect(url).to eql("http://www.fastincentivos.com.br:8081/Catalogo.svc/service")
18
+ end
19
+
20
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastshop_catalog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thiago Ganzarolli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-04 00:00:00.000000000 Z
11
+ date: 2013-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -111,6 +111,7 @@ files:
111
111
  - lib/fastshop_catalog/participant_service.rb
112
112
  - lib/fastshop_catalog/product_service.rb
113
113
  - lib/fastshop_catalog/service_exception.rb
114
+ - lib/fastshop_catalog/service_urls.rb
114
115
  - lib/fastshop_catalog/time.rb
115
116
  - lib/fastshop_catalog/version.rb
116
117
  - password_util.rb
@@ -132,6 +133,7 @@ files:
132
133
  - spec/fastshop_catalog/participant_factory.rb
133
134
  - spec/fastshop_catalog/participant_service_spec.rb
134
135
  - spec/fastshop_catalog/product_service_spec.rb
136
+ - spec/fastshop_catalog/service_urls_spec.rb
135
137
  - spec/fixtures/catalog_service_successful_response.xml
136
138
  - spec/fixtures/catalog_service_wrong_contract_response.xml
137
139
  - spec/fixtures/check_availability_successful_response.xml
@@ -195,6 +197,7 @@ test_files:
195
197
  - spec/fastshop_catalog/participant_factory.rb
196
198
  - spec/fastshop_catalog/participant_service_spec.rb
197
199
  - spec/fastshop_catalog/product_service_spec.rb
200
+ - spec/fastshop_catalog/service_urls_spec.rb
198
201
  - spec/fixtures/catalog_service_successful_response.xml
199
202
  - spec/fixtures/catalog_service_wrong_contract_response.xml
200
203
  - spec/fixtures/check_availability_successful_response.xml