diff --git a/src/index.tsx b/src/index.tsx index cf5bf6b..11cd3c0 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -304,6 +304,14 @@ export type DoesNotOwnShotErrOtherErrorNeedsNote = | DoesNotOwnShotErr | OtherErrorNeedsNote; +export type DrillRunLeaderboardGql = { + __typename?: "DrillRunLeaderboardGQL"; + entries: Array; + totalPlayers: Scalars["Int"]["output"]; + youRank?: Maybe; + youRun?: Maybe; +}; + export type EditShotReturn = { __typename?: "EditShotReturn"; error?: Maybe; @@ -2824,6 +2832,7 @@ export type Query = { getAvailableSubscriptionOptions: StripeSubscriptionOptionsGql; getBucketSet?: Maybe; getDeployedConfig: DeployedConfigGql; + getDrillRunLeaderboard: DrillRunLeaderboardGql; getFeedVideos: VideoHistoryGql; getGameTypeTagMetrics: Array; getLoggedInUser?: Maybe; @@ -2885,6 +2894,12 @@ export type QueryGetBucketSetArgs = { keyName: Scalars["String"]["input"]; }; +export type QueryGetDrillRunLeaderboardArgs = { + drillTag: Scalars["String"]["input"]; + interval?: InputMaybe; + limit?: Scalars["Int"]["input"]; +}; + export type QueryGetFeedVideosArgs = { after?: InputMaybe; feedInput?: InputMaybe; @@ -4601,6 +4616,39 @@ export type GetRunsLeaderboardQuery = { }; }; +export type GetDrillRunLeaderboardQueryVariables = Exact<{ + drillTag: Scalars["String"]["input"]; + interval?: InputMaybe; + limit?: InputMaybe; +}>; + +export type GetDrillRunLeaderboardQuery = { + __typename?: "Query"; + getDrillRunLeaderboard: { + __typename?: "DrillRunLeaderboardGQL"; + youRank?: number | null; + totalPlayers: number; + entries: Array<{ + __typename?: "RunGQL"; + id: number; + runLength: number; + videoId: number; + user: { + __typename?: "UserGQL"; + id: number; + username: string; + profileImageUri?: string | null; + }; + }>; + youRun?: { + __typename?: "RunGQL"; + id: number; + runLength: number; + videoId: number; + } | null; + }; +}; + export type GetVideoMakePercentageIntervalsQueryVariables = Exact<{ videoId: Scalars["ID"]["input"]; intervalDuration: Scalars["Int"]["input"]; @@ -9575,6 +9623,105 @@ export type GetRunsLeaderboardQueryResult = Apollo.QueryResult< GetRunsLeaderboardQuery, GetRunsLeaderboardQueryVariables >; +export const GetDrillRunLeaderboardDocument = gql` + query GetDrillRunLeaderboard( + $drillTag: String! + $interval: TimeInterval + $limit: Int = 50 + ) { + getDrillRunLeaderboard( + drillTag: $drillTag + interval: $interval + limit: $limit + ) { + entries { + id + runLength + videoId + user { + id + username + profileImageUri + } + } + youRun { + id + runLength + videoId + } + youRank + totalPlayers + } + } +`; + +/** + * __useGetDrillRunLeaderboardQuery__ + * + * To run a query within a React component, call `useGetDrillRunLeaderboardQuery` and pass it any options that fit your needs. + * When your component renders, `useGetDrillRunLeaderboardQuery` 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 } = useGetDrillRunLeaderboardQuery({ + * variables: { + * drillTag: // value for 'drillTag' + * interval: // value for 'interval' + * limit: // value for 'limit' + * }, + * }); + */ +export function useGetDrillRunLeaderboardQuery( + baseOptions: Apollo.QueryHookOptions< + GetDrillRunLeaderboardQuery, + GetDrillRunLeaderboardQueryVariables + >, +) { + const options = { ...defaultOptions, ...baseOptions }; + return Apollo.useQuery< + GetDrillRunLeaderboardQuery, + GetDrillRunLeaderboardQueryVariables + >(GetDrillRunLeaderboardDocument, options); +} +export function useGetDrillRunLeaderboardLazyQuery( + baseOptions?: Apollo.LazyQueryHookOptions< + GetDrillRunLeaderboardQuery, + GetDrillRunLeaderboardQueryVariables + >, +) { + const options = { ...defaultOptions, ...baseOptions }; + return Apollo.useLazyQuery< + GetDrillRunLeaderboardQuery, + GetDrillRunLeaderboardQueryVariables + >(GetDrillRunLeaderboardDocument, options); +} +export function useGetDrillRunLeaderboardSuspenseQuery( + baseOptions?: Apollo.SuspenseQueryHookOptions< + GetDrillRunLeaderboardQuery, + GetDrillRunLeaderboardQueryVariables + >, +) { + const options = { ...defaultOptions, ...baseOptions }; + return Apollo.useSuspenseQuery< + GetDrillRunLeaderboardQuery, + GetDrillRunLeaderboardQueryVariables + >(GetDrillRunLeaderboardDocument, options); +} +export type GetDrillRunLeaderboardQueryHookResult = ReturnType< + typeof useGetDrillRunLeaderboardQuery +>; +export type GetDrillRunLeaderboardLazyQueryHookResult = ReturnType< + typeof useGetDrillRunLeaderboardLazyQuery +>; +export type GetDrillRunLeaderboardSuspenseQueryHookResult = ReturnType< + typeof useGetDrillRunLeaderboardSuspenseQuery +>; +export type GetDrillRunLeaderboardQueryResult = Apollo.QueryResult< + GetDrillRunLeaderboardQuery, + GetDrillRunLeaderboardQueryVariables +>; export const GetVideoMakePercentageIntervalsDocument = gql` query GetVideoMakePercentageIntervals( $videoId: ID! diff --git a/src/operations/leaderboards.gql b/src/operations/leaderboards.gql index 506926c..5a28752 100644 --- a/src/operations/leaderboards.gql +++ b/src/operations/leaderboards.gql @@ -30,3 +30,33 @@ query GetRunsLeaderboard($interval: TimeInterval, $when: DateTime) { } } } + +query GetDrillRunLeaderboard( + $drillTag: String! + $interval: TimeInterval + $limit: Int = 50 +) { + getDrillRunLeaderboard( + drillTag: $drillTag + interval: $interval + limit: $limit + ) { + entries { + id + runLength + videoId + user { + id + username + profileImageUri + } + } + youRun { + id + runLength + videoId + } + youRank + totalPlayers + } +} diff --git a/src/schema.gql b/src/schema.gql index 951c973..8438740 100644 --- a/src/schema.gql +++ b/src/schema.gql @@ -31,6 +31,11 @@ type Query { limit: Int! = 50 requiredTags: [String!] = null ): RunLeaderboardGQL! + getDrillRunLeaderboard( + drillTag: String! + interval: TimeInterval = null + limit: Int! = 50 + ): DrillRunLeaderboardGQL! getMakesLeaderboard( interval: TimeInterval = null when: DateTime = null @@ -750,6 +755,13 @@ type RunLeaderboardGQL { entries: [RunGQL!]! } +type DrillRunLeaderboardGQL { + entries: [RunGQL!]! + youRun: RunGQL + youRank: Int + totalPlayers: Int! +} + type CountLeaderboardGQL { entries: [UserShotCountEntry!]! }