From 4af08e3c18089e8ac0a1e25a6e58a1f94e2bc24c Mon Sep 17 00:00:00 2001 From: "alaxicsmith@gmail.com" Date: Thu, 1 Sep 2022 11:29:57 -0700 Subject: [PATCH 1/4] chore(Redis): Update redis version and calls to 4.7.1 --- finicity-ruby.gemspec | 4 ++-- lib/finicity/fetchers/token.rb | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/finicity-ruby.gemspec b/finicity-ruby.gemspec index 996e4bd..994e631 100644 --- a/finicity-ruby.gemspec +++ b/finicity-ruby.gemspec @@ -23,8 +23,8 @@ Gem::Specification.new do |spec| spec.required_rubygems_version = ">= 2.0.0" spec.add_runtime_dependency "hashie", "~> 3.4.4" - spec.add_runtime_dependency "httparty", "~> 0.18.0" - spec.add_runtime_dependency "redis", "~> 3.3.1" + spec.add_runtime_dependency "httparty", "~> 0.20.0" + spec.add_runtime_dependency "redis", "~> 4.7.1" spec.add_runtime_dependency "activesupport" spec.add_development_dependency "bundler", "~> 1.11" diff --git a/lib/finicity/fetchers/token.rb b/lib/finicity/fetchers/token.rb index f7f6ff3..9860ac3 100644 --- a/lib/finicity/fetchers/token.rb +++ b/lib/finicity/fetchers/token.rb @@ -14,8 +14,8 @@ def refresh raise Finicity::TokenRefreshError, response.body unless response.success? - redis["finicity-token-expires-at"] = 90.minutes.from_now.to_s - redis["finicity-token"] = response.body.token + redis.set("finicity-token-expires-at", 90.minutes.from_now.to_s) + redis.set("finicity-token", response.body.token) end protected @@ -34,11 +34,11 @@ def token_expired? end def token - redis["finicity-token"] + redis.get("finicity-token") end def token_expired_at - redis["finicity-token-expires-at"] + redis.get("finicity-token-expires-at") end def redis From 659b40bfa89a9cbec0c32dd283a2616a9d249a39 Mon Sep 17 00:00:00 2001 From: "alaxicsmith@gmail.com" Date: Fri, 2 Sep 2022 15:06:10 -0700 Subject: [PATCH 2/4] feat(Connect): Add support for Finicity Connect --- lib/finicity/client.rb | 9 +++++++++ lib/finicity/resources/connect_url.rb | 19 +++++++++++++++++++ lib/finicity/version.rb | 2 +- 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 lib/finicity/resources/connect_url.rb diff --git a/lib/finicity/client.rb b/lib/finicity/client.rb index ce23e38..1dc12c9 100644 --- a/lib/finicity/client.rb +++ b/lib/finicity/client.rb @@ -3,6 +3,7 @@ require "finicity/resources/customer" require "finicity/resources/account" require "finicity/resources/transaction" +require "finicity/resources/connect_url" module Finicity class Client @@ -20,6 +21,10 @@ def self.institution Finicity::Resources::Institution end + def self.connect_url + Finicity::Resources::ConnectUrl + end + def customer @customer ||= Finicity::Resources::Customer.new(customer_id) end @@ -32,6 +37,10 @@ def transaction @transaction ||= Finicity::Resources::Transaction.new(customer_id) end + def connect_url + @connect_url ||= Finicity::Resources::ConnectUrl.new(customer_id) + end + protected def initialize(customer_id) diff --git a/lib/finicity/resources/connect_url.rb b/lib/finicity/resources/connect_url.rb new file mode 100644 index 0000000..a402ec9 --- /dev/null +++ b/lib/finicity/resources/connect_url.rb @@ -0,0 +1,19 @@ +module Finicity + module Resources + class ConnectUrl < Base + def self.v2_url + end + + def self.v2_lite_url(institution_id, params: {}) + endpoint = "/connect/v2/generate/lite" + + body = { + institutionId: institution_id, + customerId: customer_id + } + + request(:post, endpoint, body: body) + end + end + end +end \ No newline at end of file diff --git a/lib/finicity/version.rb b/lib/finicity/version.rb index 1cc169c..e206f08 100644 --- a/lib/finicity/version.rb +++ b/lib/finicity/version.rb @@ -1,3 +1,3 @@ module Finicity - VERSION = "1.2.1".freeze + VERSION = "2.0.0".freeze end From 73f5f389633e2e103ccea55f34fefc1cbdc6de30 Mon Sep 17 00:00:00 2001 From: "alaxicsmith@gmail.com" Date: Fri, 2 Sep 2022 15:07:26 -0700 Subject: [PATCH 3/4] feat(Connect): Add support for Finicity Connect --- lib/finicity/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/finicity/version.rb b/lib/finicity/version.rb index e206f08..6ebb4e1 100644 --- a/lib/finicity/version.rb +++ b/lib/finicity/version.rb @@ -1,3 +1,3 @@ module Finicity - VERSION = "2.0.0".freeze + VERSION = "1.2.2".freeze end From 582e96c980aad630509e995d54cf9cfbd001b1f4 Mon Sep 17 00:00:00 2001 From: "alaxicsmith@gmail.com" Date: Sat, 24 Sep 2022 21:38:53 -0700 Subject: [PATCH 4/4] feat(Connect): Add support for Finicity Connect --- lib/finicity/resources/account.rb | 12 +++++++++++- lib/finicity/resources/connect_url.rb | 11 ++++++----- lib/finicity/resources/institution.rb | 6 +++++- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/lib/finicity/resources/account.rb b/lib/finicity/resources/account.rb index 1a74114..3cf31c6 100644 --- a/lib/finicity/resources/account.rb +++ b/lib/finicity/resources/account.rb @@ -43,8 +43,18 @@ def refresh_mfa(institution_login_id, mfa_session, questions) request(:post, endpoint, body: body, headers: headers) end + def owner(account_id) + endpoint = "/aggregation/v1/customers/#{customer_id}/accounts/#{account_id}/owner" + request(:get, endpoint) + end + + def details(account_id) + endpoint = "/aggregation/v1/customers/#{customer_id}/accounts/#{account_id}/details" + request(:get, endpoint) + end + def get(account_id) - endpoint = "/aggregation/v1/customers/#{customer_id}/accounts/#{account_id}" + endpoint = "/aggregation/v2/customers/#{customer_id}/accounts/#{account_id}" request(:get, endpoint) end diff --git a/lib/finicity/resources/connect_url.rb b/lib/finicity/resources/connect_url.rb index a402ec9..5c016de 100644 --- a/lib/finicity/resources/connect_url.rb +++ b/lib/finicity/resources/connect_url.rb @@ -1,15 +1,16 @@ module Finicity module Resources class ConnectUrl < Base - def self.v2_url - end - - def self.v2_lite_url(institution_id, params: {}) + def generate_lite_url(institution_id, redirect_url, webhook_url) endpoint = "/connect/v2/generate/lite" body = { institutionId: institution_id, - customerId: customer_id + customerId: customer_id, + partnerId: Finicity.configs.partner_id, + redirectUri: redirect_url, + webhook: webhook_url, + webhookContentType: 'application/json' } request(:post, endpoint, body: body) diff --git a/lib/finicity/resources/institution.rb b/lib/finicity/resources/institution.rb index 1a9cd4e..3bc4963 100644 --- a/lib/finicity/resources/institution.rb +++ b/lib/finicity/resources/institution.rb @@ -8,9 +8,13 @@ def self.list(query = {}) request(:get, endpoint, query) end + def self.get_branding(institution_id) + endpoint = "/institution/v2/institutions/#{institution_id}/branding" + request(:get, endpoint) + end + def self.get(institution_id) endpoint = "/aggregation/v1/institutions/#{institution_id}/details" - request(:get, endpoint) end end