From 9b21ce1e3ac7d3a35fcfaabbb80d6f17f6f12af5 Mon Sep 17 00:00:00 2001 From: Loewy Date: Mon, 11 Aug 2025 14:23:46 -0700 Subject: [PATCH 1/2] get subscription resolvers --- src/index.tsx | 23 +++++++++++++++++++++++ src/schema.gql | 22 ++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/src/index.tsx b/src/index.tsx index cb04e66..d7c5160 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -2523,6 +2523,7 @@ export type Query = { getTableState: TableStateGql; getUser?: Maybe; getUserRelationshipsMatching: UserRelationshipsResult; + getUserSubscriptionStatus: UserSubscriptionStatusGql; getUserTags: Array; getUserVideos: VideoHistoryGql; getUsernames: Array; @@ -2956,6 +2957,17 @@ export type StripeSubscriptionOptionsGql = { products: Array; }; +export enum StripeSubscriptionStatusEnum { + Active = "ACTIVE", + Canceled = "CANCELED", + Incomplete = "INCOMPLETE", + IncompleteExpired = "INCOMPLETE_EXPIRED", + PastDue = "PAST_DUE", + Paused = "PAUSED", + Trialing = "TRIALING", + Unpaid = "UNPAID", +} + export type SuccessfulAdd = { __typename?: "SuccessfulAdd"; value: Scalars["Boolean"]["output"]; @@ -3114,6 +3126,17 @@ export type UserShotCountEntry = { videos: Scalars["Int"]["output"]; }; +export type UserSubscriptionStatusGql = { + __typename?: "UserSubscriptionStatusGQL"; + currentPeriodEnd?: Maybe; + currentPeriodStart?: Maybe; + hasActiveSubscription: Scalars["Boolean"]["output"]; + stripePriceId?: Maybe; + stripeSubscriptionId?: Maybe; + subscriptionStatus?: Maybe; + validUntil?: Maybe; +}; + export type VideoFeedInputGql = | { allUsers: Scalars["Boolean"]["input"]; diff --git a/src/schema.gql b/src/schema.gql index 0d3645d..294ccf8 100644 --- a/src/schema.gql +++ b/src/schema.gql @@ -82,6 +82,7 @@ type Query { after: String = null ): UserRelationshipsResult! getAvailableSubscriptionOptions: StripeSubscriptionOptionsGQL! + getUserSubscriptionStatus: UserSubscriptionStatusGQL! getPlayTime(userId: Int!, filters: VideoFilterInput = null): UserPlayTimeGQL! getUserVideos( userId: Int = null @@ -850,6 +851,27 @@ type StripePriceGQL { active: Boolean! } +type UserSubscriptionStatusGQL { + hasActiveSubscription: Boolean! + subscriptionStatus: StripeSubscriptionStatusEnum + currentPeriodStart: DateTime + currentPeriodEnd: DateTime + validUntil: DateTime + stripePriceId: String + stripeSubscriptionId: String +} + +enum StripeSubscriptionStatusEnum { + INCOMPLETE + INCOMPLETE_EXPIRED + TRIALING + ACTIVE + PAST_DUE + CANCELED + UNPAID + PAUSED +} + type UserPlayTimeGQL { totalSeconds: Float! } From 16d8510465425c10ddb5c7161c85660c125364e5 Mon Sep 17 00:00:00 2001 From: Loewy Date: Tue, 12 Aug 2025 13:14:08 -0700 Subject: [PATCH 2/2] add cancel subscription --- src/index.tsx | 1 + src/schema.gql | 1 + 2 files changed, 2 insertions(+) diff --git a/src/index.tsx b/src/index.tsx index d7c5160..453dcb2 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -2277,6 +2277,7 @@ export type MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailed export type Mutation = { __typename?: "Mutation"; addAnnotationToShot: AddShotAnnotationReturn; + cancelSubscription: UserSubscriptionStatusGql; commentOnVideo: Scalars["Boolean"]["output"]; createBucketSet: BucketSetGql; createSubscription: CreateSubscriptionResultGql; diff --git a/src/schema.gql b/src/schema.gql index 294ccf8..ed7cf8d 100644 --- a/src/schema.gql +++ b/src/schema.gql @@ -931,6 +931,7 @@ type Mutation { ensureStripeCustomerExists: UserGQL! deleteUser: Boolean! createSubscription(priceId: String!): CreateSubscriptionResultGQL! + cancelSubscription: UserSubscriptionStatusGQL! findPrerecordTableLayout(b64Image: String!, videoId: Int!): HomographyInfoGQL createUploadStream( videoMetadata: VideoMetadataInput!