diff --git a/packages/backend/src/graphql/queries/get-subscription-status.ee.ts b/packages/backend/src/graphql/queries/get-subscription-status.ee.ts new file mode 100644 index 00000000..980a4752 --- /dev/null +++ b/packages/backend/src/graphql/queries/get-subscription-status.ee.ts @@ -0,0 +1,22 @@ +import appConfig from '../../config/app'; +import Context from '../../types/express/context'; + +const getSubscriptionStatus = async ( + _parent: unknown, + _params: unknown, + context: Context +) => { + if (!appConfig.isCloud) return; + + const currentSubscription = await context.currentUser.$relatedQuery( + 'currentSubscription' + ); + + if (!currentSubscription?.cancellationEffectiveDate) return; + + return { + cancellationEffectiveDate: currentSubscription.cancellationEffectiveDate, + }; +}; + +export default getSubscriptionStatus; diff --git a/packages/backend/src/graphql/query-resolvers.ts b/packages/backend/src/graphql/query-resolvers.ts index 71e44020..8ecb7a95 100644 --- a/packages/backend/src/graphql/query-resolvers.ts +++ b/packages/backend/src/graphql/query-resolvers.ts @@ -18,6 +18,7 @@ import getBillingAndUsage from './queries/get-billing-and-usage.ee'; import getInvoices from './queries/get-invoices.ee'; import getAutomatischInfo from './queries/get-automatisch-info'; import getTrialStatus from './queries/get-trial-status.ee'; +import getSubscriptionStatus from './queries/get-subscription-status.ee'; import healthcheck from './queries/healthcheck'; const queryResolvers = { @@ -41,6 +42,7 @@ const queryResolvers = { getInvoices, getAutomatischInfo, getTrialStatus, + getSubscriptionStatus, healthcheck, }; diff --git a/packages/backend/src/graphql/schema.graphql b/packages/backend/src/graphql/schema.graphql index 614ca958..e07f5888 100644 --- a/packages/backend/src/graphql/schema.graphql +++ b/packages/backend/src/graphql/schema.graphql @@ -41,6 +41,7 @@ type Query { getInvoices: [Invoice] getAutomatischInfo: GetAutomatischInfo getTrialStatus: GetTrialStatus + getSubscriptionStatus: GetSubscriptionStatus healthcheck: AppHealth } @@ -487,6 +488,10 @@ type GetTrialStatus { expireAt: String } +type GetSubscriptionStatus { + cancellationEffectiveDate: String +} + type GetBillingAndUsage { subscription: Subscription usage: Usage diff --git a/packages/backend/src/workers/remove-cancelled-subscriptions.ee.ts b/packages/backend/src/workers/remove-cancelled-subscriptions.ee.ts index 91430a6b..ab288e8e 100644 --- a/packages/backend/src/workers/remove-cancelled-subscriptions.ee.ts +++ b/packages/backend/src/workers/remove-cancelled-subscriptions.ee.ts @@ -11,7 +11,7 @@ export const worker = new Worker( await Subscription.query() .delete() .where({ - status: 'cancelled', + status: 'deleted', }) .andWhere( 'cancellation_effective_date',