aggcat 0.3.2 → 0.3.3

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: c038f06792cb4ed1aa4a5e29c86f2ed567c5c51e
4
- data.tar.gz: 0a5cbe8f0e74062cc310bcd45bb85a26bbdcdcd8
3
+ metadata.gz: 53cf34048a4dad698095d1a1af343fc51f070b9b
4
+ data.tar.gz: 8ffd86b01d7477cb9837ccc13bb5f762b1a3cb7d
5
5
  SHA512:
6
- metadata.gz: d4a1643869ed1a5f2d28513ce89e743d22911caaabbc180b90b9e9e830f1dbcbeaca7f4855e412af554f99c453d453fb1e6f4b8c33242b4926e07ffbd1cc13f5
7
- data.tar.gz: 003bc37b517bab1103ff352e1d9b07178625e98eae03451b5264c1830cacb831637e0068977bd21e126f3dc2f73d8b927ef557a9e72bf570b573bede8a2e4ae8
6
+ metadata.gz: 36cf492344ff144de921b4e97361d7de303d9f038229acb90f5fffb056758a6f7736d4062b181f6466e3b56296c3bad66bc658b265fa772f9a8c89bba6452df2
7
+ data.tar.gz: 090e35b93e4a4f95c2091b658d1197326191f76636e71c056384eadb644f498344dbbf42ce11efb31c5c0fe13a654b4541ed2c4084f395c24e071aafff3c37a5
data/.ruby-gemset CHANGED
@@ -1 +1 @@
1
- my_app
1
+ aggcat
data/lib/aggcat/base.rb CHANGED
@@ -6,6 +6,7 @@ require 'net/https'
6
6
  require 'oauth'
7
7
  require 'openssl'
8
8
  require 'securerandom'
9
+ require 'set'
9
10
  require 'xmlhasher'
10
11
  require 'uri'
11
12
 
@@ -16,6 +17,16 @@ module Aggcat
16
17
 
17
18
  LOGIN_NAMESPACE = 'http://schema.intuit.com/platform/fdatafeed/institutionlogin/v1'
18
19
  CHALLENGE_NAMESPACE = 'http://schema.intuit.com/platform/fdatafeed/challenge/v1'
20
+ BANKING_ACCOUNT_NAMESPACE = 'http://schema.intuit.com/platform/fdatafeed/bankingaccount/v1'
21
+ CREDIT_ACCOUNT_NAMESPACE = 'http://schema.intuit.com/platform/fdatafeed/creditaccount/v1'
22
+ LOAN_NAMESPACE = 'http://schema.intuit.com/platform/fdatafeed/loan/v1'
23
+ INVESTMENT_ACCOUNT_NAMESPACE = 'http://schema.intuit.com/platform/fdatafeed/investmentaccount/v1'
24
+ REWARD_ACCOUNT_NAMESPACE = 'http://schema.intuit.com/platform/fdatafeed/rewardsaccount/v1'
25
+
26
+ BANKING_TYPES = Set.new %w(CHECKING SAVINGS MONEYMRKT RECURRINGDEPOSIT CD CASHMANAGEMENT OVERDRAFT)
27
+ CREDIT_TYPES = Set.new %w(CREDITCARD LINEOFCREDIT OTHER)
28
+ LOAN_TYPES = Set.new %w(LOAN AUTO COMMERCIAL CONSTR CONSUMER HOMEEQUITY MILITARY MORTGAGE SMB STUDENT)
29
+ INVESTMENT_TYPES = Set.new %w(TAXABLE 401K BROKERAGE IRA 403B KEOGH TRUST TDA SIMPLE NORMAL SARSEP UGMA OTHER)
19
30
 
20
31
  TIME_FORMAT = '%Y-%m-%dT%T.%LZ'
21
32
  DATE_FORMAT = '%Y-%m-%d'
data/lib/aggcat/client.rb CHANGED
@@ -69,6 +69,11 @@ module Aggcat
69
69
  put("/logins/#{login_id}?refresh=true", challenge_answers(answers), headers)
70
70
  end
71
71
 
72
+ def update_account_type(account_id, type)
73
+ validate(account_id: account_id, type: type)
74
+ put("/accounts/#{account_id}", account_type(type))
75
+ end
76
+
72
77
  def delete_account(account_id)
73
78
  validate(account_id: account_id)
74
79
  delete("/accounts/#{account_id}")
@@ -161,6 +166,30 @@ module Aggcat
161
166
  end
162
167
  end
163
168
 
169
+ def account_type(type)
170
+ xml = Builder::XmlMarkup.new
171
+ if BANKING_TYPES.include?(type)
172
+ xml.tag!('ns4:BankingAccount', {'xmlns:ns4' => BANKING_ACCOUNT_NAMESPACE}) do
173
+ xml.tag!('ns4:bankingAccountType', type)
174
+ end
175
+ elsif CREDIT_TYPES.include?(type)
176
+ xml.tag!('ns4:CreditAccount', {'xmlns:ns4' => CREDIT_ACCOUNT_NAMESPACE}) do
177
+ xml.tag!('ns4:creditAccountType', type)
178
+ end
179
+ elsif LOAN_TYPES.include?(type)
180
+ xml.tag!('ns4:Loan', {'xmlns:ns4' => LOAN_NAMESPACE}) do
181
+ xml.tag!('ns4:loanType', type)
182
+ end
183
+ elsif INVESTMENT_TYPES.include?(type)
184
+ xml.tag!('ns4:InvestmentAccount', {'xmlns:ns4' => INVESTMENT_ACCOUNT_NAMESPACE}) do
185
+ xml.tag!('ns4:investmentAccountType', type)
186
+ end
187
+ else
188
+ xml.tag!('ns4:RewardAccount', {'xmlns:ns4' => REWARD_ACCOUNT_NAMESPACE}) do
189
+ xml.tag!('ns4:rewardAccountType')
190
+ end
191
+ end
192
+ end
164
193
  end
165
194
  end
166
195
 
@@ -1,3 +1,3 @@
1
1
  module Aggcat
2
- VERSION = '0.3.2'
2
+ VERSION = '0.3.3'
3
3
  end
@@ -128,6 +128,24 @@ class ClientTest < Test::Unit::TestCase
128
128
  end
129
129
  end
130
130
 
131
+ def test_update_account_type
132
+ account_id = '000000000001'
133
+ type = 'ANOTHER'
134
+ stub_put("/accounts/#{account_id}").to_return(:status => 200)
135
+ response = @client.update_account_type(account_id, type)
136
+ assert_equal '200', response[:status_code]
137
+ end
138
+
139
+ def test_update_account_type_bad_args
140
+ [nil, ''].each do |arg|
141
+ exception = assert_raise(ArgumentError) { @client.update_account_type(arg, 'CREDITCARD') }
142
+ assert_equal('account_id is required', exception.message)
143
+
144
+ exception = assert_raise(ArgumentError) { @client.update_account_type(1, arg) }
145
+ assert_equal('type is required', exception.message)
146
+ end
147
+ end
148
+
131
149
  def test_delete_account
132
150
  account_id = '000000000001'
133
151
  stub_delete("/accounts/#{account_id}").to_return(:status => 200)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aggcat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gene Drabkin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-23 00:00:00.000000000 Z
11
+ date: 2013-12-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oauth