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)
|
def perform(model)
|
||||||
model.destroy
|
model.destroy
|
||||||
|
rescue => e
|
||||||
|
model.update!(scheduled_for_deletion: false) # Let's the user try again by resetting the state
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -108,6 +108,15 @@ class PlaidItem < ApplicationRecord
|
||||||
private
|
private
|
||||||
def remove_plaid_item
|
def remove_plaid_item
|
||||||
plaid_provider.remove_item(access_token)
|
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
|
end
|
||||||
|
|
||||||
# Plaid returns mutually exclusive arrays here. If the item has made a request for a product,
|
# 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