Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(dunning): Add DunningCampaign resolver to graphql api #2834

Merged
merged 15 commits into from
Nov 21, 2024

Conversation

ancorcruz
Copy link
Contributor

Roadmap Task

👉 https://getlago.canny.io/feature-requests/p/set-up-payment-retry-logic

👉 https://getlago.canny.io/feature-requests/p/send-reminders-for-overdue-invoices

Context

We want to automate dunning process so that our users don't have to look at each customer to maximize their chances of being paid retrying payments of overdue balances and sending email reminders.

We are extending dunning campaigns management to edit and delete campaigns.

Description

This change adds a new resolver to graphql api to retrieve a single dunning campaign by id. This is required to render the dunning campaign edit screen in the frontend side.

Also adds counter cache customers_count on dunning campaigns customer relationship to provide a performant count of customers with the dunning campaign applied.

app/models/customer.rb Outdated Show resolved Hide resolved
 ## Roadmap Task

👉 https://getlago.canny.io/feature-requests/p/set-up-payment-retry-logic

👉 https://getlago.canny.io/feature-requests/p/send-reminders-for-overdue-invoices

 ## Context

We want to automate dunning process so that our users don't have to look
at each customer to maximize their chances of being paid retrying
payments of overdue balances and sending email reminders.

We are extending dunning campaigns management to edit and delete
campaigns.

 ## Description

This change adds a new resolver to graphql api to retrieve a single
dunning campaign by id. This is required to render the dunning campaign
edit screen in the frontend side.
as we use softdeletion with discard gem, this does not handle rails
counter cache columns, this change ensures the counter cache column is
updated when a customer is discarded or undiscarded
@ancorcruz ancorcruz force-pushed the feat/dunning-edit-campaign-resolver branch from 101255e to d849a84 Compare November 20, 2024 14:37
This reverts commit d849a84.
we need also to aggregate all customer falling back to the campaign if
this is the organization's default
this includes customers with the campaign assigned explicitly and also
customers with the campaign as organization defaults' when the campaign
is applied to the organization
@ancorcruz ancorcruz requested a review from rsempe November 20, 2024 16:55
Copy link
Collaborator

@rsempe rsempe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👏

@ancorcruz ancorcruz merged commit 48e3e21 into main Nov 21, 2024
6 checks passed
@ancorcruz ancorcruz deleted the feat/dunning-edit-campaign-resolver branch November 21, 2024 09:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants