Compare commits

...

4 Commits

Author SHA1 Message Date
33707523f0 Add social SSO auth contract 2026-08-14 17:18:07 -07:00
308c60c93b Merge pull request 'Rename Session Coach feedback enums' (#323) from loewy/session-coach-feedback-enums into master
Reviewed-on: #323
2026-08-10 19:56:23 +00:00
19ba43ad6d Rename Session Coach feedback enums
All checks were successful
Tests / Tests (pull_request) Successful in 10s
2026-08-10 12:26:43 -07:00
03b565dc7d Merge pull request 'Let shot filters select a single player within a video' (#322) from dean/filter-by-player-index into master
Reviewed-on: #322
2026-08-06 20:21:37 +00:00
2 changed files with 105 additions and 4 deletions

View File

@@ -88,6 +88,26 @@ export type AppleIapSubscriptionOptionsGql = {
productIds: Array<Scalars["String"]["output"]>; productIds: Array<Scalars["String"]["output"]>;
}; };
export type AuthBootstrapGql = {
__typename?: "AuthBootstrapGQL";
status: AuthBootstrapStatusEnum;
user?: Maybe<UserGql>;
};
export enum AuthBootstrapStatusEnum {
NeedsProfile = "NEEDS_PROFILE",
Registered = "REGISTERED",
RegistrationDisabled = "REGISTRATION_DISABLED",
}
export enum AuthRegistrationErrorEnum {
InvalidUsername = "INVALID_USERNAME",
RegistrationDisabled = "REGISTRATION_DISABLED",
UnsupportedProvider = "UNSUPPORTED_PROVIDER",
UsernameUnavailable = "USERNAME_UNAVAILABLE",
VerifiedEmailRequired = "VERIFIED_EMAIL_REQUIRED",
}
export type BallTrajectoryGql = { export type BallTrajectoryGql = {
__typename?: "BallTrajectoryGQL"; __typename?: "BallTrajectoryGQL";
ballId: Scalars["Int"]["output"]; ballId: Scalars["Int"]["output"];
@@ -279,6 +299,12 @@ export type CommentGql = {
user: UserGql; user: UserGql;
}; };
export type CompleteAuthRegistrationGql = {
__typename?: "CompleteAuthRegistrationGQL";
errorCode?: Maybe<AuthRegistrationErrorEnum>;
user?: Maybe<UserGql>;
};
export type CountLeaderboardGql = { export type CountLeaderboardGql = {
__typename?: "CountLeaderboardGQL"; __typename?: "CountLeaderboardGQL";
entries: Array<UserShotCountEntry>; entries: Array<UserShotCountEntry>;
@@ -386,6 +412,7 @@ export type DeployedConfigGql = {
firebase: Scalars["Boolean"]["output"]; firebase: Scalars["Boolean"]["output"];
minimumAllowedAppVersion: Scalars["String"]["output"]; minimumAllowedAppVersion: Scalars["String"]["output"];
quotaEnforcementEnabled: Scalars["Boolean"]["output"]; quotaEnforcementEnabled: Scalars["Boolean"]["output"];
socialAuthProviderAvailability: Array<SocialAuthProviderAvailabilityGql>;
storageLimitEnforcementEnabled: Scalars["Boolean"]["output"]; storageLimitEnforcementEnabled: Scalars["Boolean"]["output"];
subscriptionGatingEnabled: Scalars["Boolean"]["output"]; subscriptionGatingEnabled: Scalars["Boolean"]["output"];
}; };
@@ -2618,6 +2645,7 @@ export type Mutation = {
cancelCameraClaimSession: CameraClaimSession; cancelCameraClaimSession: CameraClaimSession;
cancelSubscription: UserSubscriptionStatusGql; cancelSubscription: UserSubscriptionStatusGql;
commentOnVideo: Scalars["Boolean"]["output"]; commentOnVideo: Scalars["Boolean"]["output"];
completeAuthRegistration: CompleteAuthRegistrationGql;
createBucketSet: BucketSetGql; createBucketSet: BucketSetGql;
createCameraClaimSession: CameraClaimSession; createCameraClaimSession: CameraClaimSession;
createChallenge: Challenge; createChallenge: Challenge;
@@ -2702,6 +2730,11 @@ export type MutationCommentOnVideoArgs = {
videoId: Scalars["Int"]["input"]; videoId: Scalars["Int"]["input"];
}; };
export type MutationCompleteAuthRegistrationArgs = {
agreesToMarketing: Scalars["Boolean"]["input"];
username: Scalars["String"]["input"];
};
export type MutationCreateBucketSetArgs = { export type MutationCreateBucketSetArgs = {
params: CreateBucketSetInput; params: CreateBucketSetInput;
}; };
@@ -3201,6 +3234,7 @@ export type Query = {
doesUsernameExist: Scalars["Boolean"]["output"]; doesUsernameExist: Scalars["Boolean"]["output"];
getAggregatedShotMetrics: Array<AggregateResultGql>; getAggregatedShotMetrics: Array<AggregateResultGql>;
getAppleAppAccountToken: Scalars["String"]["output"]; getAppleAppAccountToken: Scalars["String"]["output"];
getAuthBootstrap: AuthBootstrapGql;
getAvailableSubscriptionOptions: StripeSubscriptionOptionsGql; getAvailableSubscriptionOptions: StripeSubscriptionOptionsGql;
getBucketSet?: Maybe<BucketSetGql>; getBucketSet?: Maybe<BucketSetGql>;
getDeployedConfig: DeployedConfigGql; getDeployedConfig: DeployedConfigGql;
@@ -3795,10 +3829,10 @@ export type SessionCoachFeedbackGql = {
}; };
export enum SessionCoachFeedbackResponseEnum { export enum SessionCoachFeedbackResponseEnum {
AlreadyWorkingOnThis = "ALREADY_WORKING_ON_THIS",
Helpful = "HELPFUL", Helpful = "HELPFUL",
NotEnoughEvidence = "NOT_ENOUGH_EVIDENCE", NotEnoughEvidence = "NOT_ENOUGH_EVIDENCE",
WrongFocus = "WRONG_FOCUS", NotInsightful = "NOT_INSIGHTFUL",
NotRelevant = "NOT_RELEVANT",
} }
export type SessionCoachGql = { export type SessionCoachGql = {
@@ -4062,6 +4096,25 @@ export enum SimulationEventType {
StickBall = "STICK_BALL", StickBall = "STICK_BALL",
} }
export enum SocialAuthPlatformEnum {
Android = "ANDROID",
Ios = "IOS",
Web = "WEB",
}
export type SocialAuthProviderAvailabilityGql = {
__typename?: "SocialAuthProviderAvailabilityGQL";
enabled: Scalars["Boolean"]["output"];
platform: SocialAuthPlatformEnum;
provider: SocialAuthProviderEnum;
};
export enum SocialAuthProviderEnum {
Apple = "APPLE",
Facebook = "FACEBOOK",
Google = "GOOGLE",
}
export type SpinTypeBreakdownGql = { export type SpinTypeBreakdownGql = {
__typename?: "SpinTypeBreakdownGQL"; __typename?: "SpinTypeBreakdownGQL";
center: Scalars["Int"]["output"]; center: Scalars["Int"]["output"];

View File

@@ -42,6 +42,25 @@ type AppleIapSubscriptionOptionsGQL {
productIds: [String!]! productIds: [String!]!
} }
type AuthBootstrapGQL {
status: AuthBootstrapStatusEnum!
user: UserGQL
}
enum AuthBootstrapStatusEnum {
REGISTERED
NEEDS_PROFILE
REGISTRATION_DISABLED
}
enum AuthRegistrationErrorEnum {
USERNAME_UNAVAILABLE
REGISTRATION_DISABLED
VERIFIED_EMAIL_REQUIRED
INVALID_USERNAME
UNSUPPORTED_PROVIDER
}
type BallTrajectoryGQL { type BallTrajectoryGQL {
ballId: Int! ballId: Int!
points: [TrajectoryPointGQL!]! points: [TrajectoryPointGQL!]!
@@ -225,6 +244,11 @@ type CommentGQL {
replyToCommentId: Int replyToCommentId: Int
} }
type CompleteAuthRegistrationGQL {
user: UserGQL
errorCode: AuthRegistrationErrorEnum
}
type CountLeaderboardGQL { type CountLeaderboardGQL {
entries: [UserShotCountEntry!]! entries: [UserShotCountEntry!]!
} }
@@ -337,6 +361,7 @@ type DeployedConfigGQL {
storageLimitEnforcementEnabled: Boolean! storageLimitEnforcementEnabled: Boolean!
capabilityEnforcementEnabled: Boolean! capabilityEnforcementEnabled: Boolean!
bannerMessages: [BannerGQL!]! bannerMessages: [BannerGQL!]!
socialAuthProviderAvailability: [SocialAuthProviderAvailabilityGQL!]!
defaultAndroidRecordingFormat: StreamSegmentTypeEnum! defaultAndroidRecordingFormat: StreamSegmentTypeEnum!
bucketUrl: String! bucketUrl: String!
} }
@@ -738,6 +763,10 @@ type Mutation {
response: SessionCoachFeedbackResponseEnum! response: SessionCoachFeedbackResponseEnum!
): SessionCoachFeedbackGQL! ): SessionCoachFeedbackGQL!
requestSessionCoachGeneration(videoId: Int!): SessionCoachGQL! requestSessionCoachGeneration(videoId: Int!): SessionCoachGQL!
completeAuthRegistration(
username: String!
agreesToMarketing: Boolean!
): CompleteAuthRegistrationGQL!
getProfileImageUploadLink( getProfileImageUploadLink(
fileExt: String = ".png" fileExt: String = ".png"
): GetProfileUploadLinkReturn! ): GetProfileUploadLinkReturn!
@@ -1119,6 +1148,7 @@ type Query {
): [ShotGQL!]! ): [ShotGQL!]!
getShotsByIds(ids: [Int!]!): [ShotGQL!]! getShotsByIds(ids: [Int!]!): [ShotGQL!]!
getUsageStats(days: Int! = 30): UsageStatsGQL! getUsageStats(days: Int! = 30): UsageStatsGQL!
getAuthBootstrap: AuthBootstrapGQL!
getUser(userId: Int!): UserGQL getUser(userId: Int!): UserGQL
doesUsernameExist(candidateUsername: String!): Boolean! doesUsernameExist(candidateUsername: String!): Boolean!
getLoggedInUser: UserGQL getLoggedInUser: UserGQL
@@ -1407,8 +1437,8 @@ type SessionCoachFeedbackGQL {
enum SessionCoachFeedbackResponseEnum { enum SessionCoachFeedbackResponseEnum {
HELPFUL HELPFUL
WRONG_FOCUS NOT_RELEVANT
ALREADY_WORKING_ON_THIS NOT_INSIGHTFUL
NOT_ENOUGH_EVIDENCE NOT_ENOUGH_EVIDENCE
} }
@@ -1615,6 +1645,24 @@ enum SimulationEventType {
BALL_STOP BALL_STOP
} }
enum SocialAuthPlatformEnum {
WEB
IOS
ANDROID
}
type SocialAuthProviderAvailabilityGQL {
provider: SocialAuthProviderEnum!
platform: SocialAuthPlatformEnum!
enabled: Boolean!
}
enum SocialAuthProviderEnum {
GOOGLE
APPLE
FACEBOOK
}
type SpinTypeBreakdownGQL { type SpinTypeBreakdownGQL {
draw: Int! draw: Int!
center: Int! center: Int!