diff --git a/packages/backend/src/graphql/queries/get-subscription-status.ee.js b/packages/backend/src/graphql/queries/get-subscription-status.ee.js
deleted file mode 100644
index 28df51ebda..0000000000
--- a/packages/backend/src/graphql/queries/get-subscription-status.ee.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import appConfig from '../../config/app.js';
-
-const getSubscriptionStatus = async (_parent, _params, 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.js b/packages/backend/src/graphql/query-resolvers.js
index 60dadee9b9..1c8e5ad58d 100644
--- a/packages/backend/src/graphql/query-resolvers.js
+++ b/packages/backend/src/graphql/query-resolvers.js
@@ -17,7 +17,6 @@ import getRoles from './queries/get-roles.ee.js';
import getSamlAuthProviderRoleMappings from './queries/get-saml-auth-provider-role-mappings.ee.js';
import getSamlAuthProvider from './queries/get-saml-auth-provider.ee.js';
import getStepWithTestExecutions from './queries/get-step-with-test-executions.js';
-import getSubscriptionStatus from './queries/get-subscription-status.ee.js';
import getTrialStatus from './queries/get-trial-status.ee.js';
import getUser from './queries/get-user.js';
import getUsers from './queries/get-users.js';
@@ -44,7 +43,6 @@ const queryResolvers = {
getSamlAuthProvider,
getSamlAuthProviderRoleMappings,
getStepWithTestExecutions,
- getSubscriptionStatus,
getTrialStatus,
getUser,
getUsers,
diff --git a/packages/backend/src/graphql/schema.graphql b/packages/backend/src/graphql/schema.graphql
index da091e0017..cee7b33525 100644
--- a/packages/backend/src/graphql/schema.graphql
+++ b/packages/backend/src/graphql/schema.graphql
@@ -33,7 +33,6 @@ type Query {
getNotifications: [Notification]
getSamlAuthProvider: SamlAuthProvider
getSamlAuthProviderRoleMappings(id: String!): [SamlAuthProvidersRoleMapping]
- getSubscriptionStatus: GetSubscriptionStatus
getTrialStatus: GetTrialStatus
getUser(id: String!): User
getUsers(limit: Int!, offset: Int!): UserConnection
@@ -612,10 +611,6 @@ type GetTrialStatus {
expireAt: String
}
-type GetSubscriptionStatus {
- cancellationEffectiveDate: String
-}
-
type GetBillingAndUsage {
subscription: Subscription
usage: Usage
diff --git a/packages/web/src/components/SubscriptionCancelledAlert/index.ee.jsx b/packages/web/src/components/SubscriptionCancelledAlert/index.ee.jsx
index 0a6d304fc6..ae2540aefc 100644
--- a/packages/web/src/components/SubscriptionCancelledAlert/index.ee.jsx
+++ b/packages/web/src/components/SubscriptionCancelledAlert/index.ee.jsx
@@ -1,10 +1,14 @@
import * as React from 'react';
import Alert from '@mui/material/Alert';
import Typography from '@mui/material/Typography';
-import useSubscriptionStatus from 'hooks/useSubscriptionStatus.ee';
+
+import useSubscription from 'hooks/useSubscription.ee';
+
export default function SubscriptionCancelledAlert() {
- const subscriptionStatus = useSubscriptionStatus();
- if (!subscriptionStatus) return ;
+ const subscription = useSubscription();
+
+ if (!subscription) return ;
+
return (
- {subscriptionStatus.message}
+ {subscription.message}
);
diff --git a/packages/web/src/graphql/queries/get-subscription-status.ee.js b/packages/web/src/graphql/queries/get-subscription-status.ee.js
deleted file mode 100644
index 3653f5429f..0000000000
--- a/packages/web/src/graphql/queries/get-subscription-status.ee.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { gql } from '@apollo/client';
-export const GET_SUBSCRIPTION_STATUS = gql`
- query GetSubscriptionStatus {
- getSubscriptionStatus {
- cancellationEffectiveDate
- }
- }
-`;
diff --git a/packages/web/src/hooks/useSubscription.ee.js b/packages/web/src/hooks/useSubscription.ee.js
new file mode 100644
index 0000000000..4646b9ed4c
--- /dev/null
+++ b/packages/web/src/hooks/useSubscription.ee.js
@@ -0,0 +1,38 @@
+import { useQuery } from '@tanstack/react-query';
+import { DateTime } from 'luxon';
+
+import useFormatMessage from './useFormatMessage';
+import api from 'helpers/api';
+
+export default function useSubscription() {
+ const formatMessage = useFormatMessage();
+
+ const { data, isLoading: isSubscriptionLoading } = useQuery({
+ queryKey: ['subscription'],
+ queryFn: async ({ signal }) => {
+ const { data } = await api.get(`/v1/users/me/subscription`, {
+ signal,
+ });
+
+ return data;
+ },
+ });
+ const subscription = data?.data;
+
+ const cancellationEffectiveDate = subscription?.cancellationEffectiveDate;
+
+ const hasCancelled = !!cancellationEffectiveDate;
+
+ if (isSubscriptionLoading || !hasCancelled) return null;
+
+ const cancellationEffectiveDateObject = DateTime.fromISO(
+ cancellationEffectiveDate,
+ );
+
+ return {
+ message: formatMessage('subscriptionCancelledAlert.text', {
+ date: cancellationEffectiveDateObject.toFormat('DDD'),
+ }),
+ cancellationEffectiveDate: cancellationEffectiveDateObject,
+ };
+}
diff --git a/packages/web/src/hooks/useSubscriptionStatus.ee.js b/packages/web/src/hooks/useSubscriptionStatus.ee.js
deleted file mode 100644
index 005e889eef..0000000000
--- a/packages/web/src/hooks/useSubscriptionStatus.ee.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import { useQuery } from '@apollo/client';
-import { DateTime } from 'luxon';
-import { GET_SUBSCRIPTION_STATUS } from 'graphql/queries/get-subscription-status.ee';
-import useFormatMessage from './useFormatMessage';
-export default function useSubscriptionStatus() {
- const formatMessage = useFormatMessage();
- const { data, loading } = useQuery(GET_SUBSCRIPTION_STATUS);
- const cancellationEffectiveDate =
- data?.getSubscriptionStatus?.cancellationEffectiveDate;
- const hasCancelled = !!cancellationEffectiveDate;
- if (loading || !hasCancelled) return null;
- const cancellationEffectiveDateObject = DateTime.fromMillis(
- Number(cancellationEffectiveDate),
- ).startOf('day');
- return {
- message: formatMessage('subscriptionCancelledAlert.text', {
- date: cancellationEffectiveDateObject.toFormat('DDD'),
- }),
- cancellationEffectiveDate: cancellationEffectiveDateObject,
- };
-}