adds yodlee2 accounts

This commit is contained in:
2022-09-30 08:34:13 -07:00
parent e754aea909
commit 8774a3951c
6 changed files with 43 additions and 5 deletions

View File

@@ -536,7 +536,8 @@
:mutations :mutations
{:request_import {:request_import
{:type 'String {:type 'String
:args {:which {:type 'String}} :args {:which {:type 'String}
:args {:type 'String}}
:resolve :mutation/request-import} :resolve :mutation/request-import}
:delete_transaction_rule :delete_transaction_rule

View File

@@ -5,6 +5,9 @@
[auto-ap.jobs.core :refer [execute]] [auto-ap.jobs.core :refer [execute]]
[auto-ap.yodlee.core2 :as client2])) [auto-ap.yodlee.core2 :as client2]))
(defn accounts-only []
(execute "yodlee2-accounts" client2/upsert-accounts))
(defn -main [& _] (defn -main [& _]
(execute "import-yodlee" (fn [] (execute "import-yodlee" (fn []
(client2/upsert-accounts) (client2/upsert-accounts)

View File

@@ -100,6 +100,9 @@
(= job "yodlee2") (= job "yodlee2")
(job-yodlee2/-main) (job-yodlee2/-main)
(= job "yodlee2_accounts")
(job-yodlee2/accounts-only)
(= job "plaid") (= job "plaid")
(job-plaid/-main) (job-plaid/-main)

View File

@@ -85,6 +85,15 @@
:query "mutation RequestIntuitImport{request_import(which: \":plaid\")}" :query "mutation RequestIntuitImport{request_import(which: \":plaid\")}"
:on-success [::success-plaid]}})) :on-success [::success-plaid]}}))
(re-frame/reg-event-fx
::request-yodlee2-accounts
[with-user ]
(fn [{:keys [user]} [_ _]]
{:graphql {:token user
:owns-state {:single ::yodlee2-accounts}
:query "mutation RequestIntuitImport{request_import(which: \":yodlee2-accounts\")}"
:on-success [::success-yodlee2-accounts]}}))
(re-frame/reg-event-fx (re-frame/reg-event-fx
::mounted ::mounted
@@ -108,6 +117,7 @@
(let [user @(re-frame/subscribe [::subs/user]) (let [user @(re-frame/subscribe [::subs/user])
intuit-request-import-status @(re-frame/subscribe [::status/single ::intuit]) intuit-request-import-status @(re-frame/subscribe [::status/single ::intuit])
yodlee2-request-import-status @(re-frame/subscribe [::status/single ::yodlee2]) yodlee2-request-import-status @(re-frame/subscribe [::status/single ::yodlee2])
yodlee2-accounts-request-import-status @(re-frame/subscribe [::status/single ::yodlee2-accounts])
plaid-request-import-status @(re-frame/subscribe [::status/single ::plaid]) plaid-request-import-status @(re-frame/subscribe [::status/single ::plaid])
message @(re-frame/subscribe [::msg])] message @(re-frame/subscribe [::msg])]
[:div [:div
@@ -136,8 +146,14 @@
:on-click (dispatch-event [::request-plaid]) :on-click (dispatch-event [::request-plaid])
:disabled (status/disabled-for plaid-request-import-status) :disabled (status/disabled-for plaid-request-import-status)
:class (status/class-for plaid-request-import-status)} :class (status/class-for plaid-request-import-status)}
"Start Plaid Import"]]] "Start Plaid Import"]
[table/table {:id :import-batches [:button.button.is-primary-two {:aria-haspopup true
:type "button"
:on-click (dispatch-event [::request-yodlee2-accounts])
:disabled (status/disabled-for yodlee2-accounts-request-import-status)
:class (status/class-for yodlee2-accounts-request-import-status)}
"Start Yodlee Accounts"]]]
[table/table {:id :import-batches
:data-page ::page}]])])) :data-page ::page}]])]))
{:component-did-mount (dispatch-event [::mounted ]) {:component-did-mount (dispatch-event [::mounted ])
:component-will-unmount #(re-frame/dispatch-sync [::unmounted])})) :component-will-unmount #(re-frame/dispatch-sync [::unmounted])}))

View File

@@ -3,7 +3,8 @@ variable "task_role_arn" {}
variable "execution_role_arn" {} variable "execution_role_arn" {}
variable "stage" {} variable "stage" {}
variable "job_name" {} variable "job_name" {}
variable "schedule" {} variable "schedule" { default = "rate(1 hour)" }
variable "use_schedule" { default = true }
variable "cpu" { default = 2048 } variable "cpu" { default = 2048 }
variable "memory" { default = 8192 } variable "memory" { default = 8192 }
@@ -22,6 +23,7 @@ resource "aws_ecs_task_definition" "background_taskdef" {
} }
resource "aws_cloudwatch_event_rule" "schedule" { resource "aws_cloudwatch_event_rule" "schedule" {
count = var.use_schedule ? 1 : 0
name = "${var.job_name}-schedule" name = "${var.job_name}-schedule"
schedule_expression = "${var.schedule}" schedule_expression = "${var.schedule}"
} }
@@ -29,9 +31,10 @@ resource "aws_cloudwatch_event_rule" "schedule" {
resource "aws_cloudwatch_event_target" "job_target" { resource "aws_cloudwatch_event_target" "job_target" {
count = var.use_schedule ? 1 : 0
target_id = "${var.job_name}" target_id = "${var.job_name}"
arn = var.ecs_cluster arn = var.ecs_cluster
rule = aws_cloudwatch_event_rule.schedule.name rule = aws_cloudwatch_event_rule.schedule[0].name
role_arn = "arn:aws:iam::679918342773:role/service-role/Amazon_EventBridge_Invoke_ECS_1758992733" role_arn = "arn:aws:iam::679918342773:role/service-role/Amazon_EventBridge_Invoke_ECS_1758992733"
ecs_target { ecs_target {

View File

@@ -405,4 +405,16 @@ module "close_auto_invoices_job" {
execution_role_arn = var.execution_role_arn execution_role_arn = var.execution_role_arn
memory = 2048 memory = 2048
cpu = 512 cpu = 512
}
module "yodlee2_accounts_job" {
source = "./background-job/"
ecs_cluster = var.ecs_cluster
task_role_arn = var.task_role_arn
stage = var.stage
job_name = "yodlee2-accounts"
execution_role_arn = var.execution_role_arn
use_schedule = false
memory = 1024
cpu = 512
} }