Compare commits

..

32 Commits

Author SHA1 Message Date
Will Gester
4918720ae3 add comments
All checks were successful
Tests / Tests (pull_request) Successful in 10s
2025-05-13 17:40:09 -07:00
8463ebf0e7 Merge pull request 'Add streamSegmentType to feed and playlist shot operations' (#181) from loewy/add-stream-type-to-get-shots into master
Reviewed-on: #181
2025-05-08 16:19:06 -06:00
753179ca58 add streamsegmentType to get feed
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2025-05-08 14:15:57 -07:00
9ee5c721c1 add stream type to get shost for playlist 2025-05-08 13:44:58 -07:00
00cca10cb3 Merge pull request 'Use pocketing intention fragment to prevent cache merge issues' (#180) from loewy/update-runs-operations into master
Reviewed-on: #180
2025-04-30 15:58:46 -06:00
ad704cad75 use entire fragment to prevent cache merge issues
All checks were successful
Tests / Tests (pull_request) Successful in 15s
2025-04-30 14:57:54 -07:00
e2743abb59 Merge pull request 'update runs' (#179) from dean/update-run-gql into master
Reviewed-on: #179
Reviewed-by: loewy <loewymalkov@gmail.com>
2025-04-30 12:39:23 -06:00
e109e89a40 update runs
All checks were successful
Tests / Tests (pull_request) Successful in 16s
2025-04-30 18:18:40 +00:00
67bad20d24 Merge pull request 'Add limit and countRespectsLimit args' (#178) from loewy/add-limit-args-to-get-runs into master
Reviewed-on: #178
2025-04-24 13:48:12 -06:00
0160455b9f add limit and countRespectsLimit args
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2025-04-24 12:43:07 -07:00
170ff70b7a Merge pull request 'Add required types to followers in feed operation' (#177) from loewy/add-required-types-to-feed-operation into master
Reviewed-on: #177
2025-04-09 12:48:35 -06:00
8df09b8c93 run just gql
All checks were successful
Tests / Tests (pull_request) Successful in 15s
2025-04-09 11:47:16 -07:00
644ea66e98 add required types to followers in feed operation
Some checks failed
Tests / Tests (pull_request) Failing after 17s
2025-04-09 11:43:27 -07:00
0a5097c5c0 Merge pull request 'Add followers to feed operation for reactions' (#176) from loewy/add-followers-in-reactions into master
Reviewed-on: #176
2025-04-08 18:21:33 -06:00
f4445f7ecb add followers to feed operation for reactions
All checks were successful
Tests / Tests (pull_request) Successful in 10s
2025-04-08 16:48:12 -07:00
b18fedae8e Merge pull request 'Add reactions gql to feed and react mutation operation' (#175) from loewy/add-react-to-video into master
Reviewed-on: #175
2025-04-07 11:33:55 -06:00
31baa2b096 add profile image uri
All checks were successful
Tests / Tests (pull_request) Successful in 7s
2025-04-04 13:19:42 -07:00
85cd37f70f add gql to fragment
All checks were successful
Tests / Tests (pull_request) Successful in 8s
2025-04-04 12:30:02 -07:00
b53aa172fa Add reactions mutation to operations 2025-04-04 12:18:20 -07:00
df2e534745 Merge pull request 'add reaction gql' (#174) from add-reactions into master
Reviewed-on: #174
2025-04-03 18:42:46 -06:00
Will Gester
ea4980947f add reaction gql
All checks were successful
Tests / Tests (pull_request) Successful in 16s
2025-04-03 17:42:20 -07:00
65475bca9b Merge pull request 'Add delete tags operation' (#173) from loewy/delete-tags-operation into master
Reviewed-on: #173
2025-03-31 13:47:46 -06:00
280f5a66bd add delete tags operation"
All checks were successful
Tests / Tests (pull_request) Successful in 6s
2025-03-27 11:38:26 -07:00
84daf2d136 Reintroduce retireTags 2025-03-25 14:31:19 -06:00
6558fb60e9 Add break heuristic 2025-03-25 14:05:12 -06:00
6462a6a464 Merge pull request 'Add delete tags' (#170) from mk/delete-tag into master
Reviewed-on: #170
2025-03-21 18:26:33 -06:00
41a5bb7609 Add delete tags
All checks were successful
Tests / Tests (pull_request) Successful in 16s
2025-03-21 17:22:24 -07:00
b8aaabea8b Merge pull request 'RetireTags mutation operation' (#169) from loewy/retire-tags-operation into master
Reviewed-on: #169
2025-03-21 15:50:59 -06:00
2745521664 add operations to retire tag
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2025-03-21 14:38:37 -07:00
8efa2e067c Merge pull request 'Add functionality to retire tags' (#167) from mk/retire-tags-gql into master
Reviewed-on: #167
2025-03-21 14:39:27 -06:00
919fe5ba24 Merge branch 'master' into mk/retire-tags-gql
All checks were successful
Tests / Tests (pull_request) Successful in 16s
2025-03-19 15:08:46 -06:00
7e0d8a84ee Add functionality to retire tags
All checks were successful
Tests / Tests (pull_request) Successful in 6s
2025-03-19 14:07:15 -07:00
6 changed files with 595 additions and 4 deletions

View File

@@ -122,6 +122,14 @@ export enum ClientUploadStatusEnum {
UploadEnabled = "UPLOAD_ENABLED",
}
export type CommentGql = {
__typename?: "CommentGQL";
id: Scalars["Int"]["output"];
message: Scalars["String"]["output"];
replies: Array<CommentGql>;
user: UserGql;
};
export type CountLeaderboardGql = {
__typename?: "CountLeaderboardGQL";
entries: Array<UserShotCountEntry>;
@@ -235,6 +243,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -278,6 +287,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -321,6 +331,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -364,6 +375,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -407,6 +419,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -450,6 +463,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -493,6 +507,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -536,6 +551,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -579,6 +595,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -622,6 +639,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -665,6 +683,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -708,6 +727,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -751,6 +771,7 @@ export type FilterInput =
falsePositiveScore: FloatRangeFilter;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -794,6 +815,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating: FloatRangeFilter;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -837,6 +859,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType: Array<PocketEnum>;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -880,6 +903,51 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic: Array<Scalars["Boolean"]["input"]>;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
isRight?: never;
isRightMiss?: never;
isStraight?: never;
kickAngle?: never;
kickDistance?: never;
make?: never;
marginOfErrorInDegrees?: never;
missAngleInDegrees?: never;
notFilter?: never;
orFilters?: never;
runId?: never;
runLength?: never;
shotDirection?: never;
spinType?: never;
tableSize?: never;
tags?: never;
targetPocketAngle?: never;
targetPocketAngleDirection?: never;
targetPocketDistance?: never;
totalDistance?: never;
userId?: never;
username?: never;
videoId?: never;
}
| {
andFilters?: never;
annotations?: never;
backcut?: never;
bankAngle?: never;
bankDistance?: never;
createdAt?: never;
cueAngleAfterObject?: never;
cueBallSpeed?: never;
cueObjectAngle?: never;
cueObjectDistance?: never;
cueSpeedAfterObject?: never;
difficulty?: never;
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect: Array<Scalars["Boolean"]["input"]>;
isLeft?: never;
isLeftMiss?: never;
@@ -923,6 +991,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft: Array<Scalars["Boolean"]["input"]>;
isLeftMiss?: never;
@@ -966,6 +1035,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss: Array<Scalars["Boolean"]["input"]>;
@@ -1009,6 +1079,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1052,6 +1123,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1095,6 +1167,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1138,6 +1211,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1181,6 +1255,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1224,6 +1299,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1267,6 +1343,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1310,6 +1387,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1353,6 +1431,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1396,6 +1475,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1439,6 +1519,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1482,6 +1563,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1525,6 +1607,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1568,6 +1651,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1611,6 +1695,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1654,6 +1739,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1697,6 +1783,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1740,6 +1827,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1783,6 +1871,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1826,6 +1915,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1869,6 +1959,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1912,6 +2003,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1955,6 +2047,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -2141,9 +2234,13 @@ export type MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailed
export type Mutation = {
__typename?: "Mutation";
addAnnotationToShot: AddShotAnnotationReturn;
commentOnVideo: Scalars["Boolean"]["output"];
createBucketSet: BucketSetGql;
createUploadStream: CreateUploadStreamReturn;
deleteComment: Scalars["Boolean"]["output"];
deleteTags: Scalars["Boolean"]["output"];
deleteVideo: Scalars["Boolean"]["output"];
editComment: Scalars["Boolean"]["output"];
editProfileImageUri: UserGql;
editShot: EditShotReturn;
editUploadStream: Scalars["Boolean"]["output"];
@@ -2154,6 +2251,7 @@ export type Mutation = {
getProfileImageUploadLink: GetProfileUploadLinkReturn;
getUploadLink: GetUploadLinkReturn;
reactToVideo: Scalars["Boolean"]["output"];
retireTags: Scalars["Boolean"]["output"];
setLoggerLevel: Scalars["Boolean"]["output"];
setSegmentDuration: Scalars["Boolean"]["output"];
unfollowUser: UserGql;
@@ -2166,6 +2264,12 @@ export type MutationAddAnnotationToShotArgs = {
shotId: Scalars["Int"]["input"];
};
export type MutationCommentOnVideoArgs = {
message: Scalars["String"]["input"];
parentCommentId?: InputMaybe<Scalars["Int"]["input"]>;
videoId: Scalars["Int"]["input"];
};
export type MutationCreateBucketSetArgs = {
params: CreateBucketSetInput;
};
@@ -2174,10 +2278,26 @@ export type MutationCreateUploadStreamArgs = {
videoMetadata: VideoMetadataInput;
};
export type MutationDeleteCommentArgs = {
commentId: Scalars["Int"]["input"];
videoId: Scalars["Int"]["input"];
};
export type MutationDeleteTagsArgs = {
tagsToDelete: Array<VideoTagInput>;
videoId: Scalars["Int"]["input"];
};
export type MutationDeleteVideoArgs = {
videoId: Scalars["Int"]["input"];
};
export type MutationEditCommentArgs = {
commentId: Scalars["Int"]["input"];
newMessage: Scalars["String"]["input"];
videoId: Scalars["Int"]["input"];
};
export type MutationEditProfileImageUriArgs = {
profileImageUri: Scalars["String"]["input"];
};
@@ -2223,6 +2343,10 @@ export type MutationReactToVideoArgs = {
videoId: Scalars["Int"]["input"];
};
export type MutationRetireTagsArgs = {
tagIds: Array<Scalars["Int"]["input"]>;
};
export type MutationSetLoggerLevelArgs = {
level: Scalars["String"]["input"];
path: Scalars["String"]["input"];
@@ -2440,6 +2564,10 @@ export type QueryGetUserRelationshipsMatchingArgs = {
userId: Scalars["Int"]["input"];
};
export type QueryGetUserTagsArgs = {
includeRetiredTags?: InputMaybe<Scalars["Boolean"]["input"]>;
};
export type QueryGetUserVideosArgs = {
after?: InputMaybe<Scalars["String"]["input"]>;
filters?: InputMaybe<VideoFilterInput>;
@@ -2748,6 +2876,7 @@ export type TagGql = {
__typename?: "TagGQL";
id: Scalars["Int"]["output"];
name: Scalars["String"]["output"];
retired: Scalars["Boolean"]["output"];
tagClasses?: Maybe<Array<TagClassGql>>;
};
@@ -2907,6 +3036,7 @@ export type VideoGql = {
__typename?: "VideoGQL";
averageDifficulty?: Maybe<Scalars["Float"]["output"]>;
averageTimeBetweenShots?: Maybe<Scalars["Float"]["output"]>;
comments: Array<CommentGql>;
createdAt?: Maybe<Scalars["DateTime"]["output"]>;
currentHomography?: Maybe<HomographyInfoGql>;
currentProcessing?: Maybe<VideoProcessingGql>;
@@ -3090,6 +3220,7 @@ export type GetFeedQuery = {
id: string;
lastIntendedSegmentBound?: number | null;
isCompleted: boolean;
streamSegmentType: StreamSegmentTypeEnum;
} | null;
tags: Array<{
__typename?: "VideoTag";
@@ -3113,7 +3244,18 @@ export type GetFeedQuery = {
__typename?: "ReactionGQL";
videoId: number;
reaction: ReactionEnum;
user: { __typename?: "UserGQL"; id: number; username: string };
user: {
__typename?: "UserGQL";
id: number;
username: string;
profileImageUri?: string | null;
followers?: Array<{
__typename?: "UserGQL";
id: number;
username: string;
profileImageUri?: string | null;
}> | null;
};
}>;
}>;
pageInfo: {
@@ -3152,6 +3294,7 @@ export type VideoCardFieldsFragment = {
id: string;
lastIntendedSegmentBound?: number | null;
isCompleted: boolean;
streamSegmentType: StreamSegmentTypeEnum;
} | null;
tags: Array<{
__typename?: "VideoTag";
@@ -3172,7 +3315,18 @@ export type VideoCardFieldsFragment = {
__typename?: "ReactionGQL";
videoId: number;
reaction: ReactionEnum;
user: { __typename?: "UserGQL"; id: number; username: string };
user: {
__typename?: "UserGQL";
id: number;
username: string;
profileImageUri?: string | null;
followers?: Array<{
__typename?: "UserGQL";
id: number;
username: string;
profileImageUri?: string | null;
}> | null;
};
}>;
};
@@ -3217,6 +3371,7 @@ export type GetVideoFeedQuery = {
id: string;
lastIntendedSegmentBound?: number | null;
isCompleted: boolean;
streamSegmentType: StreamSegmentTypeEnum;
} | null;
tags: Array<{
__typename?: "VideoTag";
@@ -3240,7 +3395,18 @@ export type GetVideoFeedQuery = {
__typename?: "ReactionGQL";
videoId: number;
reaction: ReactionEnum;
user: { __typename?: "UserGQL"; id: number; username: string };
user: {
__typename?: "UserGQL";
id: number;
username: string;
profileImageUri?: string | null;
followers?: Array<{
__typename?: "UserGQL";
id: number;
username: string;
profileImageUri?: string | null;
}> | null;
};
}>;
}>;
pageInfo: {
@@ -3459,6 +3625,8 @@ export type GetRunsForHighlightsQueryVariables = Exact<{
filterInput: RunFilterInput;
runIds?: InputMaybe<Array<Scalars["Int"]["input"]> | Scalars["Int"]["input"]>;
runsOrdering?: InputMaybe<GetRunsOrdering>;
limit?: Scalars["Int"]["input"];
countRespectsLimit?: Scalars["Boolean"]["input"];
}>;
export type GetRunsForHighlightsQuery = {
@@ -3478,6 +3646,55 @@ export type GetRunsForHighlightsQuery = {
};
};
export type PocketingIntentionFragmentFragment = {
__typename?: "PocketingIntentionFeaturesGQL";
make?: boolean | null;
targetPocketDistance?: number | null;
targetPocketAngle?: number | null;
targetPocketAngleDirection?: ShotDirectionEnum | null;
marginOfErrorInDegrees?: number | null;
intendedPocketType?: PocketEnum | null;
difficulty?: number | null;
};
export type GetRunsWithTimestampsQueryVariables = Exact<{
filterInput: RunFilterInput;
runIds?: InputMaybe<Array<Scalars["Int"]["input"]> | Scalars["Int"]["input"]>;
runsOrdering?: InputMaybe<GetRunsOrdering>;
}>;
export type GetRunsWithTimestampsQuery = {
__typename?: "Query";
getRuns: {
__typename?: "GetRunsResult";
count?: number | null;
runIds: Array<number>;
runs: Array<{
__typename?: "RunGQL";
id: number;
runLength: number;
userId: number;
videoId: number;
shots: Array<{
__typename?: "ShotGQL";
videoId: number;
id: number;
createdAt?: any | null;
pocketingIntentionFeatures?: {
__typename?: "PocketingIntentionFeaturesGQL";
make?: boolean | null;
targetPocketDistance?: number | null;
targetPocketAngle?: number | null;
targetPocketAngleDirection?: ShotDirectionEnum | null;
marginOfErrorInDegrees?: number | null;
intendedPocketType?: PocketEnum | null;
difficulty?: number | null;
} | null;
}>;
}>;
};
};
export type GetSerializedShotPathsQueryVariables = Exact<{
filterInput: FilterInput;
}>;
@@ -3646,6 +3863,15 @@ export type GetShotsWithMetadataFilterResultQuery = {
name: string;
};
}>;
video?: {
__typename?: "VideoGQL";
id: number;
stream?: {
__typename?: "UploadStreamGQL";
id: string;
streamSegmentType: StreamSegmentTypeEnum;
} | null;
} | null;
}>;
};
};
@@ -3715,6 +3941,15 @@ export type GetShotsWithMetadataQuery = {
name: string;
};
}>;
video?: {
__typename?: "VideoGQL";
id: number;
stream?: {
__typename?: "UploadStreamGQL";
id: string;
streamSegmentType: StreamSegmentTypeEnum;
} | null;
} | null;
}>;
};
};
@@ -3773,6 +4008,15 @@ export type GetShotsByIdsQuery = {
notes: string;
type: { __typename?: "ShotAnnotationTypeGQL"; id: number; name: string };
}>;
video?: {
__typename?: "VideoGQL";
id: number;
stream?: {
__typename?: "UploadStreamGQL";
id: string;
streamSegmentType: StreamSegmentTypeEnum;
} | null;
} | null;
}>;
};
@@ -3824,6 +4068,15 @@ export type ShotWithAllFeaturesFragment = {
notes: string;
type: { __typename?: "ShotAnnotationTypeGQL"; id: number; name: string };
}>;
video?: {
__typename?: "VideoGQL";
id: number;
stream?: {
__typename?: "UploadStreamGQL";
id: string;
streamSegmentType: StreamSegmentTypeEnum;
} | null;
} | null;
};
export type EditShotMutationVariables = Exact<{
@@ -3892,10 +4145,38 @@ export type EditShotMutation = {
name: string;
};
}>;
video?: {
__typename?: "VideoGQL";
id: number;
stream?: {
__typename?: "UploadStreamGQL";
id: string;
streamSegmentType: StreamSegmentTypeEnum;
} | null;
} | null;
} | null;
};
};
export type RetireTagsMutationVariables = Exact<{
tagIds: Array<Scalars["Int"]["input"]> | Scalars["Int"]["input"];
}>;
export type RetireTagsMutation = {
__typename?: "Mutation";
retireTags: boolean;
};
export type DeleteTagsMutationVariables = Exact<{
videoId: Scalars["Int"]["input"];
tagsToDelete: Array<VideoTagInput> | VideoTagInput;
}>;
export type DeleteTagsMutation = {
__typename?: "Mutation";
deleteTags: boolean;
};
export type GetProfileImageUploadLinkMutationVariables = Exact<{
fileExt?: InputMaybe<Scalars["String"]["input"]>;
}>;
@@ -4896,6 +5177,7 @@ export const VideoCardFieldsFragmentDoc = gql`
id
lastIntendedSegmentBound
isCompleted
streamSegmentType
}
tableSize
tags {
@@ -4919,6 +5201,12 @@ export const VideoCardFieldsFragmentDoc = gql`
user {
id
username
profileImageUri
followers {
id
username
profileImageUri
}
}
reaction
}
@@ -4930,6 +5218,17 @@ export const MedalFieldsFragmentDoc = gql`
nickname
}
`;
export const PocketingIntentionFragmentFragmentDoc = gql`
fragment PocketingIntentionFragment on PocketingIntentionFeaturesGQL {
make
targetPocketDistance
targetPocketAngle
targetPocketAngleDirection
marginOfErrorInDegrees
intendedPocketType
difficulty
}
`;
export const ShotWithAllFeaturesFragmentDoc = gql`
fragment ShotWithAllFeatures on ShotGQL {
id
@@ -4984,6 +5283,13 @@ export const ShotWithAllFeaturesFragmentDoc = gql`
}
notes
}
video {
id
stream {
id
streamSegmentType
}
}
}
`;
export const UserFragmentFragmentDoc = gql`
@@ -5901,11 +6207,15 @@ export const GetRunsForHighlightsDocument = gql`
$filterInput: RunFilterInput!
$runIds: [Int!] = null
$runsOrdering: GetRunsOrdering
$limit: Int! = 500
$countRespectsLimit: Boolean! = false
) {
getRuns(
filterInput: $filterInput
runIds: $runIds
runsOrdering: $runsOrdering
limit: $limit
countRespectsLimit: $countRespectsLimit
) {
count
runs {
@@ -5938,6 +6248,8 @@ export const GetRunsForHighlightsDocument = gql`
* filterInput: // value for 'filterInput'
* runIds: // value for 'runIds'
* runsOrdering: // value for 'runsOrdering'
* limit: // value for 'limit'
* countRespectsLimit: // value for 'countRespectsLimit'
* },
* });
*/
@@ -5990,6 +6302,105 @@ export type GetRunsForHighlightsQueryResult = Apollo.QueryResult<
GetRunsForHighlightsQuery,
GetRunsForHighlightsQueryVariables
>;
export const GetRunsWithTimestampsDocument = gql`
query GetRunsWithTimestamps(
$filterInput: RunFilterInput!
$runIds: [Int!] = null
$runsOrdering: GetRunsOrdering
) {
getRuns(
filterInput: $filterInput
runIds: $runIds
runsOrdering: $runsOrdering
) {
count
runs {
id
runLength
userId
videoId
shots {
videoId
id
createdAt
pocketingIntentionFeatures {
...PocketingIntentionFragment
}
}
}
runIds
}
}
${PocketingIntentionFragmentFragmentDoc}
`;
/**
* __useGetRunsWithTimestampsQuery__
*
* To run a query within a React component, call `useGetRunsWithTimestampsQuery` and pass it any options that fit your needs.
* When your component renders, `useGetRunsWithTimestampsQuery` 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 } = useGetRunsWithTimestampsQuery({
* variables: {
* filterInput: // value for 'filterInput'
* runIds: // value for 'runIds'
* runsOrdering: // value for 'runsOrdering'
* },
* });
*/
export function useGetRunsWithTimestampsQuery(
baseOptions: Apollo.QueryHookOptions<
GetRunsWithTimestampsQuery,
GetRunsWithTimestampsQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useQuery<
GetRunsWithTimestampsQuery,
GetRunsWithTimestampsQueryVariables
>(GetRunsWithTimestampsDocument, options);
}
export function useGetRunsWithTimestampsLazyQuery(
baseOptions?: Apollo.LazyQueryHookOptions<
GetRunsWithTimestampsQuery,
GetRunsWithTimestampsQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useLazyQuery<
GetRunsWithTimestampsQuery,
GetRunsWithTimestampsQueryVariables
>(GetRunsWithTimestampsDocument, options);
}
export function useGetRunsWithTimestampsSuspenseQuery(
baseOptions?: Apollo.SuspenseQueryHookOptions<
GetRunsWithTimestampsQuery,
GetRunsWithTimestampsQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useSuspenseQuery<
GetRunsWithTimestampsQuery,
GetRunsWithTimestampsQueryVariables
>(GetRunsWithTimestampsDocument, options);
}
export type GetRunsWithTimestampsQueryHookResult = ReturnType<
typeof useGetRunsWithTimestampsQuery
>;
export type GetRunsWithTimestampsLazyQueryHookResult = ReturnType<
typeof useGetRunsWithTimestampsLazyQuery
>;
export type GetRunsWithTimestampsSuspenseQueryHookResult = ReturnType<
typeof useGetRunsWithTimestampsSuspenseQuery
>;
export type GetRunsWithTimestampsQueryResult = Apollo.QueryResult<
GetRunsWithTimestampsQuery,
GetRunsWithTimestampsQueryVariables
>;
export const GetSerializedShotPathsDocument = gql`
query GetSerializedShotPaths($filterInput: FilterInput!) {
getShots(filterInput: $filterInput) {
@@ -6703,6 +7114,103 @@ export type EditShotMutationOptions = Apollo.BaseMutationOptions<
EditShotMutation,
EditShotMutationVariables
>;
export const RetireTagsDocument = gql`
mutation RetireTags($tagIds: [Int!]!) {
retireTags(tagIds: $tagIds)
}
`;
export type RetireTagsMutationFn = Apollo.MutationFunction<
RetireTagsMutation,
RetireTagsMutationVariables
>;
/**
* __useRetireTagsMutation__
*
* To run a mutation, you first call `useRetireTagsMutation` within a React component and pass it any options that fit your needs.
* When your component renders, `useRetireTagsMutation` 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 [retireTagsMutation, { data, loading, error }] = useRetireTagsMutation({
* variables: {
* tagIds: // value for 'tagIds'
* },
* });
*/
export function useRetireTagsMutation(
baseOptions?: Apollo.MutationHookOptions<
RetireTagsMutation,
RetireTagsMutationVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useMutation<RetireTagsMutation, RetireTagsMutationVariables>(
RetireTagsDocument,
options,
);
}
export type RetireTagsMutationHookResult = ReturnType<
typeof useRetireTagsMutation
>;
export type RetireTagsMutationResult =
Apollo.MutationResult<RetireTagsMutation>;
export type RetireTagsMutationOptions = Apollo.BaseMutationOptions<
RetireTagsMutation,
RetireTagsMutationVariables
>;
export const DeleteTagsDocument = gql`
mutation DeleteTags($videoId: Int!, $tagsToDelete: [VideoTagInput!]!) {
deleteTags(videoId: $videoId, tagsToDelete: $tagsToDelete)
}
`;
export type DeleteTagsMutationFn = Apollo.MutationFunction<
DeleteTagsMutation,
DeleteTagsMutationVariables
>;
/**
* __useDeleteTagsMutation__
*
* To run a mutation, you first call `useDeleteTagsMutation` within a React component and pass it any options that fit your needs.
* When your component renders, `useDeleteTagsMutation` 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 [deleteTagsMutation, { data, loading, error }] = useDeleteTagsMutation({
* variables: {
* videoId: // value for 'videoId'
* tagsToDelete: // value for 'tagsToDelete'
* },
* });
*/
export function useDeleteTagsMutation(
baseOptions?: Apollo.MutationHookOptions<
DeleteTagsMutation,
DeleteTagsMutationVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useMutation<DeleteTagsMutation, DeleteTagsMutationVariables>(
DeleteTagsDocument,
options,
);
}
export type DeleteTagsMutationHookResult = ReturnType<
typeof useDeleteTagsMutation
>;
export type DeleteTagsMutationResult =
Apollo.MutationResult<DeleteTagsMutation>;
export type DeleteTagsMutationOptions = Apollo.BaseMutationOptions<
DeleteTagsMutation,
DeleteTagsMutationVariables
>;
export const GetProfileImageUploadLinkDocument = gql`
mutation getProfileImageUploadLink($fileExt: String = ".png") {
getProfileImageUploadLink(fileExt: $fileExt) {

View File

@@ -40,6 +40,7 @@ fragment VideoCardFields on VideoGQL {
id
lastIntendedSegmentBound
isCompleted
streamSegmentType
}
tableSize
tags {
@@ -63,6 +64,12 @@ fragment VideoCardFields on VideoGQL {
user {
id
username
profileImageUri
followers {
id
username
profileImageUri
}
}
reaction
}

View File

@@ -2,6 +2,45 @@ query GetRunsForHighlights(
$filterInput: RunFilterInput!
$runIds: [Int!] = null
$runsOrdering: GetRunsOrdering
$limit: Int! = 500
$countRespectsLimit: Boolean! = false
) {
getRuns(
filterInput: $filterInput
runIds: $runIds
runsOrdering: $runsOrdering
limit: $limit
countRespectsLimit: $countRespectsLimit
) {
count
runs {
id
runLength
userId
videoId
shots {
videoId
id
}
}
runIds
}
}
fragment PocketingIntentionFragment on PocketingIntentionFeaturesGQL {
make
targetPocketDistance
targetPocketAngle
targetPocketAngleDirection
marginOfErrorInDegrees
intendedPocketType
difficulty
}
query GetRunsWithTimestamps(
$filterInput: RunFilterInput!
$runIds: [Int!] = null
$runsOrdering: GetRunsOrdering
) {
getRuns(
filterInput: $filterInput
@@ -17,6 +56,10 @@ query GetRunsForHighlights(
shots {
videoId
id
createdAt
pocketingIntentionFeatures {
...PocketingIntentionFragment
}
}
}
runIds

View File

@@ -185,6 +185,13 @@ fragment ShotWithAllFeatures on ShotGQL {
}
notes
}
video {
id
stream {
id
streamSegmentType
}
}
}
mutation EditShot($shotId: Int!, $fieldsToEdit: EditableShotFieldInputGQL!) {

7
src/operations/tags.gql Normal file
View File

@@ -0,0 +1,7 @@
mutation RetireTags($tagIds: [Int!]!) {
retireTags(tagIds: $tagIds)
}
mutation DeleteTags($videoId: Int!, $tagsToDelete: [VideoTagInput!]!) {
deleteTags(videoId: $videoId, tagsToDelete: $tagsToDelete)
}

View File

@@ -60,7 +60,7 @@ type Query {
after: String = null
filters: VideoFilterInput = null
): VideoHistoryGQL!
getUserTags: [TagGQL!]!
getUserTags(includeRetiredTags: Boolean = false): [TagGQL!]!
getVideo(videoId: Int!, debuggingJson: JSON = null): VideoGQL!
getVideos(videoIds: [Int!]!): [VideoGQL!]!
getFeedVideos(
@@ -195,6 +195,7 @@ input FilterInput @oneOf {
isLeftMiss: [Boolean!]
isRightMiss: [Boolean!]
isDirect: [Boolean!]
isBreakHeuristic: [Boolean!]
tableSize: FloatRangeFilter
bankAngle: FloatRangeFilter
bankDistance: FloatRangeFilter
@@ -479,6 +480,7 @@ type VideoGQL {
homographyHistory: [HomographyInfoGQL!]!
currentProcessing: VideoProcessingGQL
reactions: [ReactionGQL!]!
comments: [CommentGQL!]!
}
type UploadStreamGQL {
@@ -627,6 +629,13 @@ enum ReactionEnum {
HUNDRED
}
type CommentGQL {
id: Int!
user: UserGQL!
message: String!
replies: [CommentGQL!]!
}
type RunFeaturesGQL {
runId: Int!
indexInRun: Int!
@@ -734,6 +743,7 @@ type TagGQL {
id: Int!
name: String!
tagClasses: [TagClassGQL!]
retired: Boolean!
}
type TagClassGQL {
@@ -800,6 +810,7 @@ type Mutation {
editUser(input: EditUserInputGQL!): UserGQL!
followUser(followedUserId: Int!): UserGQL!
unfollowUser(followedUserId: Int!): UserGQL!
retireTags(tagIds: [Int!]!): Boolean!
findPrerecordTableLayout(b64Image: String!, videoId: Int!): HomographyInfoGQL
createUploadStream(
videoMetadata: VideoMetadataInput!
@@ -813,7 +824,15 @@ type Mutation {
): Boolean!
editUploadStream(videoId: Int!, videoMetadata: VideoMetadataInput!): Boolean!
deleteVideo(videoId: Int!): Boolean!
deleteTags(videoId: Int!, tagsToDelete: [VideoTagInput!]!): Boolean!
reactToVideo(videoId: Int!, reaction: ReactionEnum): Boolean!
commentOnVideo(
videoId: Int!
message: String!
parentCommentId: Int
): Boolean!
editComment(videoId: Int!, commentId: Int!, newMessage: String!): Boolean!
deleteComment(videoId: Int!, commentId: Int!): Boolean!
}
input CreateBucketSetInput {