tray-checkout 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -46,10 +46,10 @@ Getting an existing transaction:
46
46
 
47
47
  When the transaction is not found:
48
48
  response = transaction.get("xxxxx00000yyyy")
49
- response.success? # => false
50
- response.transaction[:id] # => nil
51
- response[:errors].first[:code] # => "003042"
52
- response[:errors].first[:message] # => "Transação não encontrada"
49
+ response.success? # => false
50
+ response.transaction[:id] # => nil
51
+ response.errors.first[:code] # => "003042"
52
+ response.errors.first[:message] # => "Transação não encontrada"
53
53
 
54
54
  Creating a successful transaction:
55
55
  response = transaction.create(
@@ -83,10 +83,15 @@ module Tray
83
83
 
84
84
  def customer_map!(transaction)
85
85
  customer = transaction[:customer]
86
- customer[:contacts].each do |contact|
87
- contact[:type] = CONTACT_TYPE.invert[contact.delete(:type_contact)]
88
- contact[:id] = contact.delete(:contact_id)
89
- contact[:number] = contact.delete(:value)
86
+
87
+ if customer[:contacts]
88
+ customer[:contacts].each do |contact|
89
+ contact[:type] = CONTACT_TYPE.invert[contact.delete(:type_contact)]
90
+ contact[:id] = contact.delete(:contact_id)
91
+ contact[:number] = contact.delete(:value)
92
+ end
93
+ else
94
+ customer[:contacts] = []
90
95
  end
91
96
  end
92
97
 
@@ -1,7 +1,7 @@
1
1
  # encoding: UTF-8
2
2
  module Tray
3
3
  module Checkout
4
- VERSION = "0.2.0"
4
+ VERSION = "0.2.1"
5
5
  end
6
6
  end
7
7
 
@@ -8,6 +8,7 @@ end
8
8
  def body_for(response)
9
9
  case response
10
10
  when :get_success_boleto,
11
+ :get_success_boleto_without_contacts,
11
12
  :get_success_mastercard,
12
13
  :get_failure_not_found,
13
14
  :create_success_boleto,
@@ -0,0 +1,87 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <transaction>
3
+ <data_response>
4
+ <transaction>
5
+ <transaction_token>db9b3265af6e7e19af8dd70e00d77383x</transaction_token>
6
+ <transaction_id type="integer">530</transaction_id>
7
+ <status_id type="integer">6</status_id>
8
+ <status_name>Aprovada</status_name>
9
+ <order_number>F2456</order_number>
10
+ <price_original type="decimal">33.21</price_original>
11
+ <price_payment type="decimal">33.21</price_payment>
12
+ <price_seller type="decimal">30.69</price_seller>
13
+ <price_additional type="decimal">0.0</price_additional>
14
+ <price_discount type="decimal">0.0</price_discount>
15
+ <shipping_type>Sedex</shipping_type>
16
+ <shipping_price type="decimal">1.23</shipping_price>
17
+ <split type="integer">1</split>
18
+ <date_transaction>2012-12-13T02:49:42</date_transaction>
19
+ <date_payment></date_payment>
20
+ <url_notification>http://prodis.blog.br/tray_notification</url_notification>
21
+ <url_cancel nil="true"></url_cancel>
22
+ <url_css nil="true"></url_css>
23
+ <url_process nil="true"></url_process>
24
+ <url_shipping nil="true"></url_shipping>
25
+ <url_stock nil="true"></url_stock>
26
+ <url_success nil="true"></url_success>
27
+ <available_payment_methods nil="true"></available_payment_methods>
28
+ <free nil="true"></free>
29
+ <schedule_credit></schedule_credit>
30
+ <sub_store nil="true"></sub_store>
31
+ <transaction_affiliates type="array"/>
32
+ <products type="array">
33
+ <product>
34
+ <code>LOGO-8278</code>
35
+ <quantity type="decimal">2.0</quantity>
36
+ <sku_code nil="true"></sku_code>
37
+ <price_unit type="decimal">10.99</price_unit>
38
+ <url_img nil="true"></url_img>
39
+ <description>Logo Prodis</description>
40
+ <extra nil="true"></extra>
41
+ </product>
42
+ <product>
43
+ <code>877</code>
44
+ <quantity type="decimal">1.0</quantity>
45
+ <sku_code nil="true"></sku_code>
46
+ <price_unit type="decimal">10.0</price_unit>
47
+ <url_img nil="true"></url_img>
48
+ <description>Outro produto</description>
49
+ <extra nil="true"></extra>
50
+ </product>
51
+ </products>
52
+ <payment>
53
+ <payment_method_id type="integer">6</payment_method_id>
54
+ <payment_method_name>Boleto Bancario</payment_method_name>
55
+ <price_payment type="decimal">33.21</price_payment>
56
+ <split type="integer">1</split>
57
+ <number_proccess type="integer">750</number_proccess>
58
+ <url_payment>http://checkout.sandbox.tray.com.br/payment/billet/d2baa84c13f23addde401c8e1426396e</url_payment>
59
+ <linha_digitavel>34191.76007 00075.091140 53021.450001 1 55510000003321</linha_digitavel>
60
+ <date_approval>2012-12-15T15:24:38</date_approval>
61
+ <date_payment>2012-12-15T15:23:05</date_payment>
62
+ <tid></tid>
63
+ <payment_response>Texto de resposta fake.</payment_response>
64
+ <card_id nil="true"></card_id>
65
+ </payment>
66
+ <customer>
67
+ <name>Pedro Bonamides</name>
68
+ <email>pedro@bo.com.br</email>
69
+ <cpf>18565842673</cpf>
70
+ <addresses type="array">
71
+ <address>
72
+ <street>Avenida Pedro Alvares Cabral</street>
73
+ <number>123</number>
74
+ <neighborhood>Parque Ibirapuera</neighborhood>
75
+ <postal_code>04094050</postal_code>
76
+ <completion></completion>
77
+ <city>São Paulo</city>
78
+ <state>SP</state>
79
+ </address>
80
+ </addresses>
81
+ </customer>
82
+ </transaction>
83
+ </data_response>
84
+ <message_response>
85
+ <message>success</message>
86
+ </message_response>
87
+ </transaction>
@@ -127,6 +127,14 @@ describe Tray::Checkout::ResponseParser do
127
127
  end
128
128
  end
129
129
  end
130
+
131
+ context "without contacts" do
132
+ it "returns empty array" do
133
+ parser = Tray::Checkout::ResponseParser.new(body_for(:get_success_boleto_without_contacts))
134
+ response = parser.parse
135
+ response.customer[:contacts].should == []
136
+ end
137
+ end
130
138
  end
131
139
  end
132
140
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tray-checkout
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-14 00:00:00.000000000 Z
12
+ date: 2013-02-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &14772580 !ruby/object:Gem::Requirement
16
+ requirement: &14772560 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.1'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *14772580
24
+ version_requirements: *14772560
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: log-me
27
- requirement: &14772350 !ruby/object:Gem::Requirement
27
+ requirement: &14772330 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.0.4
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *14772350
35
+ version_requirements: *14772330
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &14772160 !ruby/object:Gem::Requirement
38
+ requirement: &14772140 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *14772160
46
+ version_requirements: *14772140
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &14771890 !ruby/object:Gem::Requirement
49
+ requirement: &14771870 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '2.12'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *14771890
57
+ version_requirements: *14771870
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: webmock
60
- requirement: &14771640 !ruby/object:Gem::Requirement
60
+ requirement: &14771620 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '1.9'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *14771640
68
+ version_requirements: *14771620
69
69
  description: Tray Checkout API
70
70
  email:
71
71
  - prodis@gmail.com
@@ -99,6 +99,7 @@ files:
99
99
  - spec/support/responses/create_success_mastercard.xml
100
100
  - spec/support/responses/get_failure_not_found.xml
101
101
  - spec/support/responses/get_success_boleto.xml
102
+ - spec/support/responses/get_success_boleto_without_contacts.xml
102
103
  - spec/support/responses/get_success_mastercard.xml
103
104
  - spec/tray/checkout/hash_spec.rb
104
105
  - spec/tray/checkout/parser_spec.rb
@@ -131,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
132
  version: '0'
132
133
  segments:
133
134
  - 0
134
- hash: -922153133
135
+ hash: 151267693
135
136
  requirements: []
136
137
  rubyforge_project:
137
138
  rubygems_version: 1.8.16
@@ -146,6 +147,7 @@ test_files:
146
147
  - spec/support/responses/create_success_mastercard.xml
147
148
  - spec/support/responses/get_failure_not_found.xml
148
149
  - spec/support/responses/get_success_boleto.xml
150
+ - spec/support/responses/get_success_boleto_without_contacts.xml
149
151
  - spec/support/responses/get_success_mastercard.xml
150
152
  - spec/tray/checkout/hash_spec.rb
151
153
  - spec/tray/checkout/parser_spec.rb