Compare commits

..

3 Commits

Author SHA1 Message Date
Dean Wenstrand
53fa982bcf GetDrillRunLeaderboard: table/pocket filter vars + setup fields
All checks were successful
Tests / Tests (pull_request) Successful in 9s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 21:19:37 -07:00
Dean Wenstrand
7ec6ec9193 GetMyDrillRuns: include run date (video.createdAt)
All checks were successful
Tests / Tests (pull_request) Successful in 9s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 19:42:02 -07:00
Dean Wenstrand
0ce333525c Add GetMyDrillRuns query + generated types
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 19:33:56 -07:00
3 changed files with 158 additions and 0 deletions

View File

@@ -2839,6 +2839,7 @@ export type Query = {
getLongestRunsLeaderboard: RunLeaderboardGql; getLongestRunsLeaderboard: RunLeaderboardGql;
getMakesLeaderboard: CountLeaderboardGql; getMakesLeaderboard: CountLeaderboardGql;
getMedals: RequestedMedalsGql; getMedals: RequestedMedalsGql;
getMyDrillRuns: Array<RunGql>;
getOrderedShots: GetShotsResult; getOrderedShots: GetShotsResult;
getPlayTime: UserPlayTimeGql; getPlayTime: UserPlayTimeGql;
getQuotaStatus: QuotaStatusGql; getQuotaStatus: QuotaStatusGql;
@@ -2898,6 +2899,10 @@ export type QueryGetDrillRunLeaderboardArgs = {
drillTag: Scalars["String"]["input"]; drillTag: Scalars["String"]["input"];
interval?: InputMaybe<TimeInterval>; interval?: InputMaybe<TimeInterval>;
limit?: Scalars["Int"]["input"]; limit?: Scalars["Int"]["input"];
pocketSizeMax?: InputMaybe<Scalars["Float"]["input"]>;
pocketSizeMin?: InputMaybe<Scalars["Float"]["input"]>;
tableSizeMax?: InputMaybe<Scalars["Float"]["input"]>;
tableSizeMin?: InputMaybe<Scalars["Float"]["input"]>;
}; };
export type QueryGetFeedVideosArgs = { export type QueryGetFeedVideosArgs = {
@@ -2930,6 +2935,11 @@ export type QueryGetMedalsArgs = {
userId?: InputMaybe<Scalars["Int"]["input"]>; userId?: InputMaybe<Scalars["Int"]["input"]>;
}; };
export type QueryGetMyDrillRunsArgs = {
drillTag: Scalars["String"]["input"];
limit?: Scalars["Int"]["input"];
};
export type QueryGetOrderedShotsArgs = { export type QueryGetOrderedShotsArgs = {
countRespectsLimit?: Scalars["Boolean"]["input"]; countRespectsLimit?: Scalars["Boolean"]["input"];
filterInput: FilterInput; filterInput: FilterInput;
@@ -4620,6 +4630,10 @@ export type GetDrillRunLeaderboardQueryVariables = Exact<{
drillTag: Scalars["String"]["input"]; drillTag: Scalars["String"]["input"];
interval?: InputMaybe<TimeInterval>; interval?: InputMaybe<TimeInterval>;
limit?: InputMaybe<Scalars["Int"]["input"]>; limit?: InputMaybe<Scalars["Int"]["input"]>;
tableSizeMin?: InputMaybe<Scalars["Float"]["input"]>;
tableSizeMax?: InputMaybe<Scalars["Float"]["input"]>;
pocketSizeMin?: InputMaybe<Scalars["Float"]["input"]>;
pocketSizeMax?: InputMaybe<Scalars["Float"]["input"]>;
}>; }>;
export type GetDrillRunLeaderboardQuery = { export type GetDrillRunLeaderboardQuery = {
@@ -4633,6 +4647,11 @@ export type GetDrillRunLeaderboardQuery = {
id: number; id: number;
runLength: number; runLength: number;
videoId: number; videoId: number;
video: {
__typename?: "VideoGQL";
tableSize: number;
pocketSize?: number | null;
};
user: { user: {
__typename?: "UserGQL"; __typename?: "UserGQL";
id: number; id: number;
@@ -4649,6 +4668,22 @@ export type GetDrillRunLeaderboardQuery = {
}; };
}; };
export type GetMyDrillRunsQueryVariables = Exact<{
drillTag: Scalars["String"]["input"];
limit?: InputMaybe<Scalars["Int"]["input"]>;
}>;
export type GetMyDrillRunsQuery = {
__typename?: "Query";
getMyDrillRuns: Array<{
__typename?: "RunGQL";
id: number;
runLength: number;
videoId: number;
video: { __typename?: "VideoGQL"; createdAt?: any | null };
}>;
};
export type GetVideoMakePercentageIntervalsQueryVariables = Exact<{ export type GetVideoMakePercentageIntervalsQueryVariables = Exact<{
videoId: Scalars["ID"]["input"]; videoId: Scalars["ID"]["input"];
intervalDuration: Scalars["Int"]["input"]; intervalDuration: Scalars["Int"]["input"];
@@ -9628,16 +9663,28 @@ export const GetDrillRunLeaderboardDocument = gql`
$drillTag: String! $drillTag: String!
$interval: TimeInterval $interval: TimeInterval
$limit: Int = 50 $limit: Int = 50
$tableSizeMin: Float
$tableSizeMax: Float
$pocketSizeMin: Float
$pocketSizeMax: Float
) { ) {
getDrillRunLeaderboard( getDrillRunLeaderboard(
drillTag: $drillTag drillTag: $drillTag
interval: $interval interval: $interval
limit: $limit limit: $limit
tableSizeMin: $tableSizeMin
tableSizeMax: $tableSizeMax
pocketSizeMin: $pocketSizeMin
pocketSizeMax: $pocketSizeMax
) { ) {
entries { entries {
id id
runLength runLength
videoId videoId
video {
tableSize
pocketSize
}
user { user {
id id
username username
@@ -9670,6 +9717,10 @@ export const GetDrillRunLeaderboardDocument = gql`
* drillTag: // value for 'drillTag' * drillTag: // value for 'drillTag'
* interval: // value for 'interval' * interval: // value for 'interval'
* limit: // value for 'limit' * limit: // value for 'limit'
* tableSizeMin: // value for 'tableSizeMin'
* tableSizeMax: // value for 'tableSizeMax'
* pocketSizeMin: // value for 'pocketSizeMin'
* pocketSizeMax: // value for 'pocketSizeMax'
* }, * },
* }); * });
*/ */
@@ -9722,6 +9773,85 @@ export type GetDrillRunLeaderboardQueryResult = Apollo.QueryResult<
GetDrillRunLeaderboardQuery, GetDrillRunLeaderboardQuery,
GetDrillRunLeaderboardQueryVariables GetDrillRunLeaderboardQueryVariables
>; >;
export const GetMyDrillRunsDocument = gql`
query GetMyDrillRuns($drillTag: String!, $limit: Int = 50) {
getMyDrillRuns(drillTag: $drillTag, limit: $limit) {
id
runLength
videoId
video {
createdAt
}
}
}
`;
/**
* __useGetMyDrillRunsQuery__
*
* To run a query within a React component, call `useGetMyDrillRunsQuery` and pass it any options that fit your needs.
* When your component renders, `useGetMyDrillRunsQuery` 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 } = useGetMyDrillRunsQuery({
* variables: {
* drillTag: // value for 'drillTag'
* limit: // value for 'limit'
* },
* });
*/
export function useGetMyDrillRunsQuery(
baseOptions: Apollo.QueryHookOptions<
GetMyDrillRunsQuery,
GetMyDrillRunsQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useQuery<GetMyDrillRunsQuery, GetMyDrillRunsQueryVariables>(
GetMyDrillRunsDocument,
options,
);
}
export function useGetMyDrillRunsLazyQuery(
baseOptions?: Apollo.LazyQueryHookOptions<
GetMyDrillRunsQuery,
GetMyDrillRunsQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useLazyQuery<GetMyDrillRunsQuery, GetMyDrillRunsQueryVariables>(
GetMyDrillRunsDocument,
options,
);
}
export function useGetMyDrillRunsSuspenseQuery(
baseOptions?: Apollo.SuspenseQueryHookOptions<
GetMyDrillRunsQuery,
GetMyDrillRunsQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useSuspenseQuery<
GetMyDrillRunsQuery,
GetMyDrillRunsQueryVariables
>(GetMyDrillRunsDocument, options);
}
export type GetMyDrillRunsQueryHookResult = ReturnType<
typeof useGetMyDrillRunsQuery
>;
export type GetMyDrillRunsLazyQueryHookResult = ReturnType<
typeof useGetMyDrillRunsLazyQuery
>;
export type GetMyDrillRunsSuspenseQueryHookResult = ReturnType<
typeof useGetMyDrillRunsSuspenseQuery
>;
export type GetMyDrillRunsQueryResult = Apollo.QueryResult<
GetMyDrillRunsQuery,
GetMyDrillRunsQueryVariables
>;
export const GetVideoMakePercentageIntervalsDocument = gql` export const GetVideoMakePercentageIntervalsDocument = gql`
query GetVideoMakePercentageIntervals( query GetVideoMakePercentageIntervals(
$videoId: ID! $videoId: ID!

View File

@@ -35,16 +35,28 @@ query GetDrillRunLeaderboard(
$drillTag: String! $drillTag: String!
$interval: TimeInterval $interval: TimeInterval
$limit: Int = 50 $limit: Int = 50
$tableSizeMin: Float
$tableSizeMax: Float
$pocketSizeMin: Float
$pocketSizeMax: Float
) { ) {
getDrillRunLeaderboard( getDrillRunLeaderboard(
drillTag: $drillTag drillTag: $drillTag
interval: $interval interval: $interval
limit: $limit limit: $limit
tableSizeMin: $tableSizeMin
tableSizeMax: $tableSizeMax
pocketSizeMin: $pocketSizeMin
pocketSizeMax: $pocketSizeMax
) { ) {
entries { entries {
id id
runLength runLength
videoId videoId
video {
tableSize
pocketSize
}
user { user {
id id
username username
@@ -60,3 +72,14 @@ query GetDrillRunLeaderboard(
totalPlayers totalPlayers
} }
} }
query GetMyDrillRuns($drillTag: String!, $limit: Int = 50) {
getMyDrillRuns(drillTag: $drillTag, limit: $limit) {
id
runLength
videoId
video {
createdAt
}
}
}

View File

@@ -35,7 +35,12 @@ type Query {
drillTag: String! drillTag: String!
interval: TimeInterval = null interval: TimeInterval = null
limit: Int! = 50 limit: Int! = 50
tableSizeMin: Float = null
tableSizeMax: Float = null
pocketSizeMin: Float = null
pocketSizeMax: Float = null
): DrillRunLeaderboardGQL! ): DrillRunLeaderboardGQL!
getMyDrillRuns(drillTag: String!, limit: Int! = 50): [RunGQL!]!
getMakesLeaderboard( getMakesLeaderboard(
interval: TimeInterval = null interval: TimeInterval = null
when: DateTime = null when: DateTime = null