cadun 0.2.4 → 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.
data/lib/cadun/gateway.rb CHANGED
@@ -18,7 +18,15 @@ module Cadun
18
18
 
19
19
  protected
20
20
  def content_resource
21
- get "/cadunii/ws/resources/pessoa/#{@options[:user_id] || authorization.xpath("usuarioID").text}"
21
+ subject = if @options[:email]
22
+ "email/#{@options[:email]}"
23
+ elsif @options[:cadun_id]
24
+ @options[:cadun_id]
25
+ else
26
+ authorization.xpath("usuarioID").text
27
+ end
28
+
29
+ get "/cadunii/ws/resources/pessoa/#{subject}"
22
30
  end
23
31
 
24
32
  def get(path)
data/lib/cadun/user.rb CHANGED
@@ -2,7 +2,7 @@ module Cadun
2
2
  class User
3
3
  attr_reader :gateway
4
4
 
5
- { "id" => "user_id",
5
+ { "id" => "cadun_id",
6
6
  "nome" => "name",
7
7
  "emailPrincipal" => "email",
8
8
  "tipoUsuario" => "user_type",
@@ -16,7 +16,16 @@ module Cadun
16
16
  define_method(method) { gateway.content.xpath(path).text }
17
17
  end
18
18
 
19
- alias :id :user_id
19
+ alias :id :cadun_id
20
+
21
+ def self.find_by_email(email)
22
+ email = "#{email}@globo.com" unless email =~ /^.*@.*$/
23
+ new(:email => email)
24
+ end
25
+
26
+ def self.find_by_id(cadun_id)
27
+ new(:cadun_id => cadun_id)
28
+ end
20
29
 
21
30
  def initialize(options = {})
22
31
  @gateway = Gateway.new(options)
@@ -39,7 +48,7 @@ module Cadun
39
48
  end
40
49
 
41
50
  def to_hash
42
- %w(user_id name email user_type gender neighborhood city state country address birthday phone mobile login cpf zipcode status complement).inject(Hash.new(0)) { |hash, method| hash[method.to_sym] = send(method); hash }
51
+ %w(cadun_id name email user_type gender neighborhood city state country address birthday phone mobile login cpf zipcode status complement).inject(Hash.new(0)) { |hash, method| hash[method.to_sym] = send(method); hash }
43
52
  end
44
53
 
45
54
  def method_missing(method)
data/lib/cadun/version.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  module Cadun
2
2
  module VERSION
3
3
  MAJOR = 0
4
- MINOR = 2
5
- TINY = 4
4
+ MINOR = 3
5
+ TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY] * '.'
8
8
  end
@@ -54,28 +54,15 @@ describe Cadun::User do
54
54
 
55
55
  verify_method "user_type", "NAO_ASSINANTE"
56
56
 
57
- verify_method "user_id", "21737810"
57
+ verify_method "cadun_id", "21737810"
58
58
 
59
59
  verify_method "complement", "807"
60
60
  end
61
61
 
62
- context "when the user id is given" do
63
- subject { Cadun::User.new :user_id => "10001000" }
64
-
65
- it "should load the gateway" do
66
- mock(Cadun::Gateway).new(hash_including(:user_id => "10001000"))
67
- subject
68
- end
69
-
70
- verify_method "id", "10001000"
71
-
72
- verify_method "name", "Guilherme Chico"
73
- end
74
-
75
62
  describe "#to_hash" do
76
- subject { Cadun::User.new(:user_id => "10001000").to_hash }
63
+ subject { Cadun::User.new(:cadun_id => "10001000").to_hash }
77
64
 
78
- specify { should include(:user_id => "10001000") }
65
+ specify { should include(:cadun_id => "10001000") }
79
66
  specify { should include(:name => "Guilherme Chico") }
80
67
  specify { should include(:email => "fab1@spam.la") }
81
68
  specify { should include(:user_type => "NAO_ASSINANTE") }
@@ -94,4 +81,24 @@ describe Cadun::User do
94
81
  specify { should include(:status => "ATIVO") }
95
82
  specify { should include(:complement => "807") }
96
83
  end
84
+
85
+ describe ".find_by_email" do
86
+ context "given an email without domain" do
87
+ subject { Cadun::User.find_by_email("silvano") }
88
+
89
+ verify_method "id", "24510533"
90
+ end
91
+
92
+ context "given an email with domain" do
93
+ subject { Cadun::User.find_by_email("silvano@corp.globo.com") }
94
+
95
+ verify_method "id", "24510533"
96
+ end
97
+ end
98
+
99
+ describe ".find_by_id" do
100
+ subject { Cadun::User.find_by_id("10001000") }
101
+
102
+ verify_method "id", "10001000"
103
+ end
97
104
  end
data/spec/spec_helper.rb CHANGED
@@ -26,6 +26,12 @@ def stub_requests
26
26
 
27
27
  FakeWeb.register_uri :get, "http://isp-authenticator.dev.globoi.com:8280/cadunii/ws/resources/pessoa/10001000",
28
28
  :body => "#{File.dirname(__FILE__)}/support/fixtures/pessoa_2.xml"
29
+
30
+ FakeWeb.register_uri :get, "http://isp-authenticator.dev.globoi.com:8280/cadunii/ws/resources/pessoa/email/silvano@globo.com",
31
+ :body => "#{File.dirname(__FILE__)}/support/fixtures/email.xml"
32
+
33
+ FakeWeb.register_uri :get, "http://isp-authenticator.dev.globoi.com:8280/cadunii/ws/resources/pessoa/email/silvano@corp.globo.com",
34
+ :body => "#{File.dirname(__FILE__)}/support/fixtures/email.xml"
29
35
  end
30
36
 
31
37
  def load_config
@@ -0,0 +1,57 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
+ <pessoa>
3
+ <id>24510533</id>
4
+ <alteracao>2011-05-05T00:00:00-03:00</alteracao>
5
+ <bairro>Barra da Tijuca</bairro>
6
+ <cep>22793380</cep>
7
+ <cidade>
8
+ <estadoId>19</estadoId>
9
+ <id>7043</id>
10
+ <nome>Rio de Janeiro</nome>
11
+ </cidade>
12
+ <cidadeId>7043</cidadeId>
13
+ <complemento>AP 1711</complemento>
14
+ <cookie>000009gUMBNm3lygWTdpVUbWm6Ha7yWK</cookie>
15
+ <cpf>05359742720</cpf>
16
+ <criacao>2008-08-07T00:00:00-03:00</criacao>
17
+ <dadosAdicionais>
18
+ <atualizacao>2009-09-29T05:30:01-03:00</atualizacao>
19
+ <componenteId>21</componenteId>
20
+ <criacao>2008-08-07T01:52:30-03:00</criacao>
21
+ <usuarioId>24510533</usuarioId>
22
+ <valor>1759250SSPES</valor>
23
+ </dadosAdicionais>
24
+ <dataNascimento>1981-12-23T00:00:00-03:00</dataNascimento>
25
+ <emailPrincipal>silvano@corp.globo.com</emailPrincipal>
26
+ <endereco>Avenida Adolpho de Vasconcelos</endereco>
27
+ <estado>
28
+ <id>19</id>
29
+ <nome>Rio de Janeiro</nome>
30
+ <paisId>1</paisId>
31
+ <sigla>RJ</sigla>
32
+ </estado>
33
+ <estadoId>19</estadoId>
34
+ <login>silvano.silvano.2008</login>
35
+ <nome>Silvano Nogueira Buback</nome>
36
+ <numero>401</numero>
37
+ <optinCelular>false</optinCelular>
38
+ <optinGlobo>true</optinGlobo>
39
+ <optinParceiros>true</optinParceiros>
40
+ <origemId>181</origemId>
41
+ <pais>
42
+ <id>1</id>
43
+ <nome>Brasil</nome>
44
+ <sigla>BR</sigla>
45
+ </pais>
46
+ <paisId>1</paisId>
47
+ <perguntaId>2</perguntaId>
48
+ <resposta>astor</resposta>
49
+ <servicoOrigemId>807</servicoOrigemId>
50
+ <sexo>MASCULINO</sexo>
51
+ <status>ATIVO</status>
52
+ <telefoneCelular>82503193</telefoneCelular>
53
+ <telefoneCelularDdd>21</telefoneCelularDdd>
54
+ <telefoneResidencial>32171000</telefoneResidencial>
55
+ <telefoneResidencialDdd>21</telefoneResidencialDdd>
56
+ <tipoUsuario>NAO_ASSINANTE</tipoUsuario>
57
+ </pessoa>
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: cadun
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.4
5
+ version: 0.3.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Bruno
@@ -12,8 +12,7 @@ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
14
 
15
- date: 2011-05-27 00:00:00 -03:00
16
- default_executable:
15
+ date: 2011-05-30 00:00:00 Z
17
16
  dependencies:
18
17
  - !ruby/object:Gem::Dependency
19
18
  name: nokogiri
@@ -97,9 +96,9 @@ files:
97
96
  - spec/support/fixtures/another_config.yml
98
97
  - spec/support/fixtures/autorizacao.xml
99
98
  - spec/support/fixtures/config.yml
99
+ - spec/support/fixtures/email.xml
100
100
  - spec/support/fixtures/pessoa.xml
101
101
  - spec/support/fixtures/pessoa_2.xml
102
- has_rdoc: true
103
102
  homepage: https://github.com/azisaka/Cadun
104
103
  licenses: []
105
104
 
@@ -123,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
122
  requirements: []
124
123
 
125
124
  rubyforge_project: cadun
126
- rubygems_version: 1.6.2
125
+ rubygems_version: 1.8.4
127
126
  signing_key:
128
127
  specification_version: 3
129
128
  summary: A wrapper for the CadUn authentication/authorization API