Compare commits

...

6 Commits

Author SHA1 Message Date
8f663b766e add initPlaylistUploadStatus to UploadStreamWithDetails fragment
All checks were successful
Tests / Tests (pull_request) Successful in 10s
2026-04-14 13:12:17 -07:00
ad9cab4543 Merge pull request 'Get Game Type Tag Operations' (#234) from loewy/get-game-type-tag-metrics-operation into master
Reviewed-on: #234
2026-04-14 20:11:43 +00:00
cd3ecdfba4 Merge pull request 'Add schema getGameTypeTagMetrics' (#232) from loewy/add-get-game-type-tag-metrics into master
Reviewed-on: #232
2026-04-01 23:23:16 +00:00
28ba01c07f operation
All checks were successful
Tests / Tests (pull_request) Successful in 11s
2026-03-30 15:31:24 -07:00
27a0c08cd5 add schema getGameTypeTagMetrics
All checks were successful
Tests / Tests (pull_request) Successful in 10s
2026-03-30 13:09:18 -07:00
99f0913fd8 Merge pull request 'Add manual entitlement GraphQL schema fields' (#231) from ivan/manual-entitlement-abstraction-gql into master
Reviewed-on: #231
2026-03-22 18:32:22 +00:00
4 changed files with 155 additions and 0 deletions

View File

@@ -2191,6 +2191,26 @@ export type FloatRangeFilter = {
lessThanInclusive?: Scalars["Boolean"]["input"];
};
export type GameTypeTagMetric = {
__typename?: "GameTypeTagMetric";
madeShots: Scalars["Int"]["output"];
makeRate: Scalars["Float"]["output"];
shotCount: Scalars["Int"]["output"];
tableSize?: Maybe<Scalars["Float"]["output"]>;
tagLabel: Scalars["String"]["output"];
tagName: Scalars["String"]["output"];
};
export type GameTypeTagMetricsInput = {
createdAt?: InputMaybe<DateRangeFilter>;
groupByTableSize?: Scalars["Boolean"]["input"];
includePrivate?: IncludePrivateEnum;
includeUnknown?: Scalars["Boolean"]["input"];
maxTags?: InputMaybe<Scalars["Int"]["input"]>;
tagClass?: InputMaybe<Scalars["String"]["input"]>;
userId: Scalars["Int"]["input"];
};
export type GetProfileUploadLinkErrors = {
__typename?: "GetProfileUploadLinkErrors";
error: TooManyProfileImageUploadsErr;
@@ -2732,6 +2752,7 @@ export type Query = {
getBucketSet?: Maybe<BucketSetGql>;
getDeployedConfig: DeployedConfigGql;
getFeedVideos: VideoHistoryGql;
getGameTypeTagMetrics: Array<GameTypeTagMetric>;
getLoggedInUser?: Maybe<UserGql>;
getLongestRunsLeaderboard: RunLeaderboardGql;
getMakesLeaderboard: CountLeaderboardGql;
@@ -2799,6 +2820,10 @@ export type QueryGetFeedVideosArgs = {
limit?: Scalars["Int"]["input"];
};
export type QueryGetGameTypeTagMetricsArgs = {
input: GameTypeTagMetricsInput;
};
export type QueryGetLongestRunsLeaderboardArgs = {
interval?: InputMaybe<TimeInterval>;
limit?: Scalars["Int"]["input"];
@@ -5546,6 +5571,23 @@ export type GetUserTagsQuery = {
}>;
};
export type GetGameTypeTagMetricsQueryVariables = Exact<{
input: GameTypeTagMetricsInput;
}>;
export type GetGameTypeTagMetricsQuery = {
__typename?: "Query";
getGameTypeTagMetrics: Array<{
__typename?: "GameTypeTagMetric";
tagName: string;
tagLabel: string;
tableSize?: number | null;
shotCount: number;
madeShots: number;
makeRate: number;
}>;
};
export type FollowUserMutationVariables = Exact<{
followedUserId: Scalars["Int"]["input"];
}>;
@@ -6425,6 +6467,7 @@ export type UploadStreamWithDetailsFragment = {
lastIntendedSegmentBound?: number | null;
uploadCompletionCursor: number;
uploadsCompleted: number;
initPlaylistUploadStatus?: InitPlaylistUploadStatusEnum | null;
} | null;
};
@@ -6449,6 +6492,7 @@ export type GetUploadStreamsWithDetailsQuery = {
lastIntendedSegmentBound?: number | null;
uploadCompletionCursor: number;
uploadsCompleted: number;
initPlaylistUploadStatus?: InitPlaylistUploadStatusEnum | null;
} | null;
}>;
pageInfo: {
@@ -6791,6 +6835,7 @@ export const UploadStreamWithDetailsFragmentDoc = gql`
lastIntendedSegmentBound
uploadCompletionCursor
uploadsCompleted
initPlaylistUploadStatus
}
}
`;
@@ -11529,6 +11574,84 @@ export type GetUserTagsQueryResult = Apollo.QueryResult<
GetUserTagsQuery,
GetUserTagsQueryVariables
>;
export const GetGameTypeTagMetricsDocument = gql`
query GetGameTypeTagMetrics($input: GameTypeTagMetricsInput!) {
getGameTypeTagMetrics(input: $input) {
tagName
tagLabel
tableSize
shotCount
madeShots
makeRate
}
}
`;
/**
* __useGetGameTypeTagMetricsQuery__
*
* To run a query within a React component, call `useGetGameTypeTagMetricsQuery` and pass it any options that fit your needs.
* When your component renders, `useGetGameTypeTagMetricsQuery` 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 } = useGetGameTypeTagMetricsQuery({
* variables: {
* input: // value for 'input'
* },
* });
*/
export function useGetGameTypeTagMetricsQuery(
baseOptions: Apollo.QueryHookOptions<
GetGameTypeTagMetricsQuery,
GetGameTypeTagMetricsQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useQuery<
GetGameTypeTagMetricsQuery,
GetGameTypeTagMetricsQueryVariables
>(GetGameTypeTagMetricsDocument, options);
}
export function useGetGameTypeTagMetricsLazyQuery(
baseOptions?: Apollo.LazyQueryHookOptions<
GetGameTypeTagMetricsQuery,
GetGameTypeTagMetricsQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useLazyQuery<
GetGameTypeTagMetricsQuery,
GetGameTypeTagMetricsQueryVariables
>(GetGameTypeTagMetricsDocument, options);
}
export function useGetGameTypeTagMetricsSuspenseQuery(
baseOptions?: Apollo.SuspenseQueryHookOptions<
GetGameTypeTagMetricsQuery,
GetGameTypeTagMetricsQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useSuspenseQuery<
GetGameTypeTagMetricsQuery,
GetGameTypeTagMetricsQueryVariables
>(GetGameTypeTagMetricsDocument, options);
}
export type GetGameTypeTagMetricsQueryHookResult = ReturnType<
typeof useGetGameTypeTagMetricsQuery
>;
export type GetGameTypeTagMetricsLazyQueryHookResult = ReturnType<
typeof useGetGameTypeTagMetricsLazyQuery
>;
export type GetGameTypeTagMetricsSuspenseQueryHookResult = ReturnType<
typeof useGetGameTypeTagMetricsSuspenseQuery
>;
export type GetGameTypeTagMetricsQueryResult = Apollo.QueryResult<
GetGameTypeTagMetricsQuery,
GetGameTypeTagMetricsQueryVariables
>;
export const FollowUserDocument = gql`
mutation followUser($followedUserId: Int!) {
followUser(followedUserId: $followedUserId) {

View File

@@ -92,6 +92,17 @@ query GetUserTags {
}
}
query GetGameTypeTagMetrics($input: GameTypeTagMetricsInput!) {
getGameTypeTagMetrics(input: $input) {
tagName
tagLabel
tableSize
shotCount
madeShots
makeRate
}
}
mutation followUser($followedUserId: Int!) {
followUser(followedUserId: $followedUserId) {
id

View File

@@ -117,6 +117,7 @@ fragment UploadStreamWithDetails on VideoGQL {
lastIntendedSegmentBound
uploadCompletionCursor
uploadsCompleted
initPlaylistUploadStatus
}
}

View File

@@ -106,6 +106,7 @@ type Query {
filters: VideoFilterInput = null
): VideoHistoryGQL!
getUserTags(includeRetiredTags: Boolean = false): [TagGQL!]!
getGameTypeTagMetrics(input: GameTypeTagMetricsInput!): [GameTypeTagMetric!]!
getVideo(videoId: Int!, debuggingJson: JSON = null): VideoGQL!
getVideos(videoIds: [Int!]!): [VideoGQL!]!
}
@@ -1017,6 +1018,25 @@ type TagClassGQL {
name: String!
}
type GameTypeTagMetric {
tagName: String!
tagLabel: String!
tableSize: Float
shotCount: Int!
madeShots: Int!
makeRate: Float!
}
input GameTypeTagMetricsInput {
userId: Int!
createdAt: DateRangeFilter = null
maxTags: Int = null
groupByTableSize: Boolean! = true
includeUnknown: Boolean! = true
tagClass: String = "game_type"
includePrivate: IncludePrivateEnum! = MINE
}
"""
The `JSON` scalar type represents JSON values as specified by [ECMA-404](https://ecma-international.org/wp-content/uploads/ECMA-404_2nd_edition_december_2017.pdf).
"""