mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-19 05:09:38 +02:00
Handle ITEM_NOT_FOUND errors on Plaid deletions
This commit is contained in:
parent
d21e385962
commit
854a21993a
2 changed files with 11 additions and 0 deletions
|
@ -3,5 +3,7 @@ class DestroyJob < ApplicationJob
|
|||
|
||||
def perform(model)
|
||||
model.destroy
|
||||
rescue => e
|
||||
model.update!(scheduled_for_deletion: false) # Let's the user try again by resetting the state
|
||||
end
|
||||
end
|
||||
|
|
|
@ -108,6 +108,15 @@ class PlaidItem < ApplicationRecord
|
|||
private
|
||||
def remove_plaid_item
|
||||
plaid_provider.remove_item(access_token)
|
||||
rescue Plaid::ApiError => e
|
||||
json_response = JSON.parse(e.response_body)
|
||||
|
||||
# If the item is not found, that means it was already deleted by the user on their
|
||||
# Plaid portal OR by Plaid support. Either way, we're not being billed, so continue
|
||||
# with the deletion of our internal record.
|
||||
unless json_response["error_code"] == "ITEM_NOT_FOUND"
|
||||
raise e
|
||||
end
|
||||
end
|
||||
|
||||
# Plaid returns mutually exclusive arrays here. If the item has made a request for a product,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue