Compare commits
8 Commits
f724ec6c0d
...
loewy/soci
| Author | SHA1 | Date | |
|---|---|---|---|
| 4ffd9f972d | |||
| 33707523f0 | |||
| 308c60c93b | |||
| 19ba43ad6d | |||
| 03b565dc7d | |||
|
|
901f4222a4 | ||
| 0f6e7b28d4 | |||
| 9b6b08c1ec |
234
src/index.tsx
234
src/index.tsx
@@ -88,6 +88,26 @@ export type AppleIapSubscriptionOptionsGql = {
|
||||
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 = {
|
||||
__typename?: "BallTrajectoryGQL";
|
||||
ballId: Scalars["Int"]["output"];
|
||||
@@ -279,6 +299,12 @@ export type CommentGql = {
|
||||
user: UserGql;
|
||||
};
|
||||
|
||||
export type CompleteAuthRegistrationGql = {
|
||||
__typename?: "CompleteAuthRegistrationGQL";
|
||||
errorCode?: Maybe<AuthRegistrationErrorEnum>;
|
||||
user?: Maybe<UserGql>;
|
||||
};
|
||||
|
||||
export type CountLeaderboardGql = {
|
||||
__typename?: "CountLeaderboardGQL";
|
||||
entries: Array<UserShotCountEntry>;
|
||||
@@ -386,6 +412,7 @@ export type DeployedConfigGql = {
|
||||
firebase: Scalars["Boolean"]["output"];
|
||||
minimumAllowedAppVersion: Scalars["String"]["output"];
|
||||
quotaEnforcementEnabled: Scalars["Boolean"]["output"];
|
||||
socialAuthProviderAvailability: Array<SocialAuthProviderAvailabilityGql>;
|
||||
storageLimitEnforcementEnabled: Scalars["Boolean"]["output"];
|
||||
subscriptionGatingEnabled: Scalars["Boolean"]["output"];
|
||||
};
|
||||
@@ -2618,6 +2645,7 @@ export type Mutation = {
|
||||
cancelCameraClaimSession: CameraClaimSession;
|
||||
cancelSubscription: UserSubscriptionStatusGql;
|
||||
commentOnVideo: Scalars["Boolean"]["output"];
|
||||
completeAuthRegistration: CompleteAuthRegistrationGql;
|
||||
createBucketSet: BucketSetGql;
|
||||
createCameraClaimSession: CameraClaimSession;
|
||||
createChallenge: Challenge;
|
||||
@@ -2702,6 +2730,11 @@ export type MutationCommentOnVideoArgs = {
|
||||
videoId: Scalars["Int"]["input"];
|
||||
};
|
||||
|
||||
export type MutationCompleteAuthRegistrationArgs = {
|
||||
agreesToMarketing: Scalars["Boolean"]["input"];
|
||||
username: Scalars["String"]["input"];
|
||||
};
|
||||
|
||||
export type MutationCreateBucketSetArgs = {
|
||||
params: CreateBucketSetInput;
|
||||
};
|
||||
@@ -3201,6 +3234,7 @@ export type Query = {
|
||||
doesUsernameExist: Scalars["Boolean"]["output"];
|
||||
getAggregatedShotMetrics: Array<AggregateResultGql>;
|
||||
getAppleAppAccountToken: Scalars["String"]["output"];
|
||||
getAuthBootstrap: AuthBootstrapGql;
|
||||
getAvailableSubscriptionOptions: StripeSubscriptionOptionsGql;
|
||||
getBucketSet?: Maybe<BucketSetGql>;
|
||||
getDeployedConfig: DeployedConfigGql;
|
||||
@@ -3795,10 +3829,10 @@ export type SessionCoachFeedbackGql = {
|
||||
};
|
||||
|
||||
export enum SessionCoachFeedbackResponseEnum {
|
||||
AlreadyWorkingOnThis = "ALREADY_WORKING_ON_THIS",
|
||||
Helpful = "HELPFUL",
|
||||
NotEnoughEvidence = "NOT_ENOUGH_EVIDENCE",
|
||||
WrongFocus = "WRONG_FOCUS",
|
||||
NotInsightful = "NOT_INSIGHTFUL",
|
||||
NotRelevant = "NOT_RELEVANT",
|
||||
}
|
||||
|
||||
export type SessionCoachGql = {
|
||||
@@ -3969,6 +4003,7 @@ export type ShotProjectionGql = {
|
||||
|
||||
export type ShotTableStateGql = {
|
||||
__typename?: "ShotTableStateGQL";
|
||||
frameImage?: Maybe<Scalars["String"]["output"]>;
|
||||
frameIndex: Scalars["Int"]["output"];
|
||||
shotId: Scalars["Int"]["output"];
|
||||
tableState: TableStateGql;
|
||||
@@ -4061,6 +4096,25 @@ export enum SimulationEventType {
|
||||
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 = {
|
||||
__typename?: "SpinTypeBreakdownGQL";
|
||||
center: Scalars["Int"]["output"];
|
||||
@@ -4655,6 +4709,31 @@ export type GetAggregatedShotMetricsQuery = {
|
||||
}>;
|
||||
};
|
||||
|
||||
export type GetAuthBootstrapQueryVariables = Exact<{ [key: string]: never }>;
|
||||
|
||||
export type GetAuthBootstrapQuery = {
|
||||
__typename?: "Query";
|
||||
getAuthBootstrap: {
|
||||
__typename?: "AuthBootstrapGQL";
|
||||
status: AuthBootstrapStatusEnum;
|
||||
user?: { __typename?: "UserGQL"; id: number; username: string } | null;
|
||||
};
|
||||
};
|
||||
|
||||
export type CompleteAuthRegistrationMutationVariables = Exact<{
|
||||
username: Scalars["String"]["input"];
|
||||
agreesToMarketing: Scalars["Boolean"]["input"];
|
||||
}>;
|
||||
|
||||
export type CompleteAuthRegistrationMutation = {
|
||||
__typename?: "Mutation";
|
||||
completeAuthRegistration: {
|
||||
__typename?: "CompleteAuthRegistrationGQL";
|
||||
errorCode?: AuthRegistrationErrorEnum | null;
|
||||
user?: { __typename?: "UserGQL"; id: number; username: string } | null;
|
||||
};
|
||||
};
|
||||
|
||||
export type GetChallengesQueryVariables = Exact<{ [key: string]: never }>;
|
||||
|
||||
export type GetChallengesQuery = {
|
||||
@@ -5082,6 +5161,12 @@ export type GetDeployedConfigQuery = {
|
||||
message: string;
|
||||
priority: number;
|
||||
}>;
|
||||
socialAuthProviderAvailability: Array<{
|
||||
__typename?: "SocialAuthProviderAvailabilityGQL";
|
||||
provider: SocialAuthProviderEnum;
|
||||
platform: SocialAuthPlatformEnum;
|
||||
enabled: boolean;
|
||||
}>;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -7822,6 +7907,7 @@ export type GetShotTableStateQuery = {
|
||||
shotId: number;
|
||||
videoId: number;
|
||||
frameIndex: number;
|
||||
frameImage?: string | null;
|
||||
tableState: {
|
||||
__typename?: "TableStateGQL";
|
||||
identifierToPosition: Array<Array<number>>;
|
||||
@@ -10665,6 +10751,144 @@ export type GetAggregatedShotMetricsQueryResult = Apollo.QueryResult<
|
||||
GetAggregatedShotMetricsQuery,
|
||||
GetAggregatedShotMetricsQueryVariables
|
||||
>;
|
||||
export const GetAuthBootstrapDocument = gql`
|
||||
query getAuthBootstrap {
|
||||
getAuthBootstrap {
|
||||
status
|
||||
user {
|
||||
id
|
||||
username
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
/**
|
||||
* __useGetAuthBootstrapQuery__
|
||||
*
|
||||
* To run a query within a React component, call `useGetAuthBootstrapQuery` and pass it any options that fit your needs.
|
||||
* When your component renders, `useGetAuthBootstrapQuery` returns an object from Apollo Client that contains loading, error, and data properties
|
||||
* you can use to render your UI.
|
||||
*
|
||||
* @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
|
||||
*
|
||||
* @example
|
||||
* const { data, loading, error } = useGetAuthBootstrapQuery({
|
||||
* variables: {
|
||||
* },
|
||||
* });
|
||||
*/
|
||||
export function useGetAuthBootstrapQuery(
|
||||
baseOptions?: Apollo.QueryHookOptions<
|
||||
GetAuthBootstrapQuery,
|
||||
GetAuthBootstrapQueryVariables
|
||||
>,
|
||||
) {
|
||||
const options = { ...defaultOptions, ...baseOptions };
|
||||
return Apollo.useQuery<GetAuthBootstrapQuery, GetAuthBootstrapQueryVariables>(
|
||||
GetAuthBootstrapDocument,
|
||||
options,
|
||||
);
|
||||
}
|
||||
export function useGetAuthBootstrapLazyQuery(
|
||||
baseOptions?: Apollo.LazyQueryHookOptions<
|
||||
GetAuthBootstrapQuery,
|
||||
GetAuthBootstrapQueryVariables
|
||||
>,
|
||||
) {
|
||||
const options = { ...defaultOptions, ...baseOptions };
|
||||
return Apollo.useLazyQuery<
|
||||
GetAuthBootstrapQuery,
|
||||
GetAuthBootstrapQueryVariables
|
||||
>(GetAuthBootstrapDocument, options);
|
||||
}
|
||||
export function useGetAuthBootstrapSuspenseQuery(
|
||||
baseOptions?: Apollo.SuspenseQueryHookOptions<
|
||||
GetAuthBootstrapQuery,
|
||||
GetAuthBootstrapQueryVariables
|
||||
>,
|
||||
) {
|
||||
const options = { ...defaultOptions, ...baseOptions };
|
||||
return Apollo.useSuspenseQuery<
|
||||
GetAuthBootstrapQuery,
|
||||
GetAuthBootstrapQueryVariables
|
||||
>(GetAuthBootstrapDocument, options);
|
||||
}
|
||||
export type GetAuthBootstrapQueryHookResult = ReturnType<
|
||||
typeof useGetAuthBootstrapQuery
|
||||
>;
|
||||
export type GetAuthBootstrapLazyQueryHookResult = ReturnType<
|
||||
typeof useGetAuthBootstrapLazyQuery
|
||||
>;
|
||||
export type GetAuthBootstrapSuspenseQueryHookResult = ReturnType<
|
||||
typeof useGetAuthBootstrapSuspenseQuery
|
||||
>;
|
||||
export type GetAuthBootstrapQueryResult = Apollo.QueryResult<
|
||||
GetAuthBootstrapQuery,
|
||||
GetAuthBootstrapQueryVariables
|
||||
>;
|
||||
export const CompleteAuthRegistrationDocument = gql`
|
||||
mutation completeAuthRegistration(
|
||||
$username: String!
|
||||
$agreesToMarketing: Boolean!
|
||||
) {
|
||||
completeAuthRegistration(
|
||||
username: $username
|
||||
agreesToMarketing: $agreesToMarketing
|
||||
) {
|
||||
errorCode
|
||||
user {
|
||||
id
|
||||
username
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
export type CompleteAuthRegistrationMutationFn = Apollo.MutationFunction<
|
||||
CompleteAuthRegistrationMutation,
|
||||
CompleteAuthRegistrationMutationVariables
|
||||
>;
|
||||
|
||||
/**
|
||||
* __useCompleteAuthRegistrationMutation__
|
||||
*
|
||||
* To run a mutation, you first call `useCompleteAuthRegistrationMutation` within a React component and pass it any options that fit your needs.
|
||||
* When your component renders, `useCompleteAuthRegistrationMutation` returns a tuple that includes:
|
||||
* - A mutate function that you can call at any time to execute the mutation
|
||||
* - An object with fields that represent the current status of the mutation's execution
|
||||
*
|
||||
* @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
|
||||
*
|
||||
* @example
|
||||
* const [completeAuthRegistrationMutation, { data, loading, error }] = useCompleteAuthRegistrationMutation({
|
||||
* variables: {
|
||||
* username: // value for 'username'
|
||||
* agreesToMarketing: // value for 'agreesToMarketing'
|
||||
* },
|
||||
* });
|
||||
*/
|
||||
export function useCompleteAuthRegistrationMutation(
|
||||
baseOptions?: Apollo.MutationHookOptions<
|
||||
CompleteAuthRegistrationMutation,
|
||||
CompleteAuthRegistrationMutationVariables
|
||||
>,
|
||||
) {
|
||||
const options = { ...defaultOptions, ...baseOptions };
|
||||
return Apollo.useMutation<
|
||||
CompleteAuthRegistrationMutation,
|
||||
CompleteAuthRegistrationMutationVariables
|
||||
>(CompleteAuthRegistrationDocument, options);
|
||||
}
|
||||
export type CompleteAuthRegistrationMutationHookResult = ReturnType<
|
||||
typeof useCompleteAuthRegistrationMutation
|
||||
>;
|
||||
export type CompleteAuthRegistrationMutationResult =
|
||||
Apollo.MutationResult<CompleteAuthRegistrationMutation>;
|
||||
export type CompleteAuthRegistrationMutationOptions =
|
||||
Apollo.BaseMutationOptions<
|
||||
CompleteAuthRegistrationMutation,
|
||||
CompleteAuthRegistrationMutationVariables
|
||||
>;
|
||||
export const GetChallengesDocument = gql`
|
||||
query GetChallenges {
|
||||
challenges {
|
||||
@@ -12072,6 +12296,11 @@ export const GetDeployedConfigDocument = gql`
|
||||
}
|
||||
defaultAndroidRecordingFormat
|
||||
bucketUrl
|
||||
socialAuthProviderAvailability {
|
||||
provider
|
||||
platform
|
||||
enabled
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
@@ -16602,6 +16831,7 @@ export const GetShotTableStateDocument = gql`
|
||||
shotId
|
||||
videoId
|
||||
frameIndex
|
||||
frameImage
|
||||
tableState {
|
||||
...TableStateLayoutFields
|
||||
}
|
||||
|
||||
25
src/operations/auth.gql
Normal file
25
src/operations/auth.gql
Normal file
@@ -0,0 +1,25 @@
|
||||
query getAuthBootstrap {
|
||||
getAuthBootstrap {
|
||||
status
|
||||
user {
|
||||
id
|
||||
username
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mutation completeAuthRegistration(
|
||||
$username: String!
|
||||
$agreesToMarketing: Boolean!
|
||||
) {
|
||||
completeAuthRegistration(
|
||||
username: $username
|
||||
agreesToMarketing: $agreesToMarketing
|
||||
) {
|
||||
errorCode
|
||||
user {
|
||||
id
|
||||
username
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -19,5 +19,10 @@ query getDeployedConfig {
|
||||
}
|
||||
defaultAndroidRecordingFormat
|
||||
bucketUrl
|
||||
socialAuthProviderAvailability {
|
||||
provider
|
||||
platform
|
||||
enabled
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,9 +44,10 @@ fragment DetectionPocketPointFields on PocketPointsGQL {
|
||||
# positions. Boxes, pocket boxes, and source points share the crop's
|
||||
# coordinate space; the crop locates that space in the full frame.
|
||||
#
|
||||
# Only the photo query selects this. The live and shot queries read a
|
||||
# frame out of a video the app never holds, so there is no image to
|
||||
# overlay, and getLiveTableState is polled every five seconds.
|
||||
# Only the photo query selects this. The shot query returns its source
|
||||
# frame (frameImage) but positions there come from the stored homography,
|
||||
# so there are no fresh boxes to draw; the live query returns no image at
|
||||
# all and is polled every five seconds.
|
||||
fragment TableStateDetectionFields on TableStateGQL {
|
||||
identifierToBox {
|
||||
...DetectionBoxFields
|
||||
@@ -97,6 +98,9 @@ query GetShotTableState($shotId: Int!) {
|
||||
shotId
|
||||
videoId
|
||||
frameIndex
|
||||
# The b64 JPEG frame the layout was detected in, so the client can show
|
||||
# the shot's actual starting frame instead of the video's thumbnail.
|
||||
frameImage
|
||||
tableState {
|
||||
...TableStateLayoutFields
|
||||
}
|
||||
|
||||
@@ -42,6 +42,25 @@ type AppleIapSubscriptionOptionsGQL {
|
||||
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 {
|
||||
ballId: Int!
|
||||
points: [TrajectoryPointGQL!]!
|
||||
@@ -225,6 +244,11 @@ type CommentGQL {
|
||||
replyToCommentId: Int
|
||||
}
|
||||
|
||||
type CompleteAuthRegistrationGQL {
|
||||
user: UserGQL
|
||||
errorCode: AuthRegistrationErrorEnum
|
||||
}
|
||||
|
||||
type CountLeaderboardGQL {
|
||||
entries: [UserShotCountEntry!]!
|
||||
}
|
||||
@@ -250,11 +274,6 @@ input CreatePoolHallCameraInput {
|
||||
claimTermsText: String = null
|
||||
}
|
||||
|
||||
input CreateShotShareLinkInput {
|
||||
shotIds: [Int!]!
|
||||
paddingSeconds: Float = null
|
||||
}
|
||||
|
||||
input CreatePoolHallInput {
|
||||
name: String!
|
||||
address: String = null
|
||||
@@ -342,6 +361,7 @@ type DeployedConfigGQL {
|
||||
storageLimitEnforcementEnabled: Boolean!
|
||||
capabilityEnforcementEnabled: Boolean!
|
||||
bannerMessages: [BannerGQL!]!
|
||||
socialAuthProviderAvailability: [SocialAuthProviderAvailabilityGQL!]!
|
||||
defaultAndroidRecordingFormat: StreamSegmentTypeEnum!
|
||||
bucketUrl: String!
|
||||
}
|
||||
@@ -743,6 +763,10 @@ type Mutation {
|
||||
response: SessionCoachFeedbackResponseEnum!
|
||||
): SessionCoachFeedbackGQL!
|
||||
requestSessionCoachGeneration(videoId: Int!): SessionCoachGQL!
|
||||
completeAuthRegistration(
|
||||
username: String!
|
||||
agreesToMarketing: Boolean!
|
||||
): CompleteAuthRegistrationGQL!
|
||||
getProfileImageUploadLink(
|
||||
fileExt: String = ".png"
|
||||
): GetProfileUploadLinkReturn!
|
||||
@@ -1124,6 +1148,7 @@ type Query {
|
||||
): [ShotGQL!]!
|
||||
getShotsByIds(ids: [Int!]!): [ShotGQL!]!
|
||||
getUsageStats(days: Int! = 30): UsageStatsGQL!
|
||||
getAuthBootstrap: AuthBootstrapGQL!
|
||||
getUser(userId: Int!): UserGQL
|
||||
doesUsernameExist(candidateUsername: String!): Boolean!
|
||||
getLoggedInUser: UserGQL
|
||||
@@ -1412,8 +1437,8 @@ type SessionCoachFeedbackGQL {
|
||||
|
||||
enum SessionCoachFeedbackResponseEnum {
|
||||
HELPFUL
|
||||
WRONG_FOCUS
|
||||
ALREADY_WORKING_ON_THIS
|
||||
NOT_RELEVANT
|
||||
NOT_INSIGHTFUL
|
||||
NOT_ENOUGH_EVIDENCE
|
||||
}
|
||||
|
||||
@@ -1574,6 +1599,7 @@ type ShotTableStateGQL {
|
||||
videoId: Int!
|
||||
frameIndex: Int!
|
||||
tableState: TableStateGQL!
|
||||
frameImage: String
|
||||
}
|
||||
|
||||
input ShotsOrderingComponent @oneOf {
|
||||
@@ -1619,6 +1645,24 @@ enum SimulationEventType {
|
||||
BALL_STOP
|
||||
}
|
||||
|
||||
enum SocialAuthPlatformEnum {
|
||||
WEB
|
||||
IOS
|
||||
ANDROID
|
||||
}
|
||||
|
||||
type SocialAuthProviderAvailabilityGQL {
|
||||
provider: SocialAuthProviderEnum!
|
||||
platform: SocialAuthPlatformEnum!
|
||||
enabled: Boolean!
|
||||
}
|
||||
|
||||
enum SocialAuthProviderEnum {
|
||||
GOOGLE
|
||||
APPLE
|
||||
FACEBOOK
|
||||
}
|
||||
|
||||
type SpinTypeBreakdownGQL {
|
||||
draw: Int!
|
||||
center: Int!
|
||||
@@ -1967,11 +2011,6 @@ type UserSubscriptionStatusGQL {
|
||||
stripeSubscriptionId: String
|
||||
}
|
||||
|
||||
type ShareLinkGQL {
|
||||
slug: String!
|
||||
url: String!
|
||||
}
|
||||
|
||||
type VideoExportJobGQL {
|
||||
id: Int!
|
||||
videoId: Int!
|
||||
|
||||
Reference in New Issue
Block a user