fix: prevent billingPortal creation if no active subscription (#9701)

Billing portal is created in settings/billing page even if subscription
is canceled, causing server internal error. -> Skip back end request

Bonus : display settings/billing page with disabled button even if
subscription is canceled

---------

Co-authored-by: etiennejouan <jouan.etienne@gmail.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Etienne
2025-01-21 15:01:18 +01:00
committed by GitHub
parent 47c2c774e3
commit d8815d7ebf
12 changed files with 123 additions and 270 deletions

View File

@ -135,22 +135,6 @@ export type BillingSubscription = {
status: SubscriptionStatus;
};
export type BillingSubscriptionFilter = {
and?: InputMaybe<Array<BillingSubscriptionFilter>>;
id?: InputMaybe<UuidFilterComparison>;
or?: InputMaybe<Array<BillingSubscriptionFilter>>;
};
export type BillingSubscriptionSort = {
direction: SortDirection;
field: BillingSubscriptionSortFields;
nulls?: InputMaybe<SortNulls>;
};
export enum BillingSubscriptionSortFields {
id = 'id'
}
export type BooleanFieldComparison = {
is?: InputMaybe<Scalars['Boolean']['input']>;
isNot?: InputMaybe<Scalars['Boolean']['input']>;
@ -1418,18 +1402,6 @@ export type SignUpOutput = {
workspace: WorkspaceSubdomainAndId;
};
/** Sort Directions */
export enum SortDirection {
ASC = 'ASC',
DESC = 'DESC'
}
/** Sort Nulls Options */
export enum SortNulls {
NULLS_FIRST = 'NULLS_FIRST',
NULLS_LAST = 'NULLS_LAST'
}
export enum SubscriptionInterval {
Day = 'Day',
Month = 'Month',
@ -1743,9 +1715,7 @@ export type Workspace = {
__typename?: 'Workspace';
activationStatus: WorkspaceActivationStatus;
allowImpersonation: Scalars['Boolean']['output'];
billingCustomers?: Maybe<Array<BillingCustomer>>;
billingEntitlements?: Maybe<Array<BillingEntitlement>>;
billingSubscriptions?: Maybe<Array<BillingSubscription>>;
billingSubscriptions: Array<BillingSubscription>;
createdAt: Scalars['DateTime']['output'];
currentBillingSubscription?: Maybe<BillingSubscription>;
databaseSchema: Scalars['String']['output'];
@ -1768,24 +1738,6 @@ export type Workspace = {
workspaceMembersCount?: Maybe<Scalars['Float']['output']>;
};
export type WorkspaceBillingCustomersArgs = {
filter?: BillingCustomerFilter;
sorting?: Array<BillingCustomerSort>;
};
export type WorkspaceBillingEntitlementsArgs = {
filter?: BillingEntitlementFilter;
sorting?: Array<BillingEntitlementSort>;
};
export type WorkspaceBillingSubscriptionsArgs = {
filter?: BillingSubscriptionFilter;
sorting?: Array<BillingSubscriptionSort>;
};
export enum WorkspaceActivationStatus {
ACTIVE = 'ACTIVE',
INACTIVE = 'INACTIVE',
@ -1864,51 +1816,6 @@ export type WorkspaceSubdomainAndId = {
subdomain: Scalars['String']['output'];
};
export type BillingCustomer = {
__typename?: 'billingCustomer';
id: Scalars['UUID']['output'];
};
export type BillingCustomerFilter = {
and?: InputMaybe<Array<BillingCustomerFilter>>;
id?: InputMaybe<UuidFilterComparison>;
or?: InputMaybe<Array<BillingCustomerFilter>>;
};
export type BillingCustomerSort = {
direction: SortDirection;
field: BillingCustomerSortFields;
nulls?: InputMaybe<SortNulls>;
};
export enum BillingCustomerSortFields {
id = 'id'
}
export type BillingEntitlement = {
__typename?: 'billingEntitlement';
id: Scalars['UUID']['output'];
key: Scalars['String']['output'];
value: Scalars['Boolean']['output'];
workspaceId: Scalars['String']['output'];
};
export type BillingEntitlementFilter = {
and?: InputMaybe<Array<BillingEntitlementFilter>>;
id?: InputMaybe<UuidFilterComparison>;
or?: InputMaybe<Array<BillingEntitlementFilter>>;
};
export type BillingEntitlementSort = {
direction: SortDirection;
field: BillingEntitlementSortFields;
nulls?: InputMaybe<SortNulls>;
};
export enum BillingEntitlementSortFields {
id = 'id'
}
export type Field = {
__typename?: 'field';
createdAt: Scalars['DateTime']['output'];