Compare commits

...

11 Commits

Author SHA1 Message Date
653f31e96a WIP: Comment CRUD
Some checks failed
Tests / Tests (pull_request) Failing after 4s
2025-04-08 13:03:34 -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
5 changed files with 354 additions and 4 deletions

View File

@ -122,6 +122,16 @@ export enum ClientUploadStatusEnum {
UploadEnabled = "UPLOAD_ENABLED", UploadEnabled = "UPLOAD_ENABLED",
} }
export type CommentGql = {
__typename?: "CommentGQL";
createdAt?: Maybe<Scalars["DateTime"]["output"]>;
id: Scalars["Int"]["output"];
message: Scalars["String"]["output"];
replies: Array<CommentGql>;
updatedAt?: Maybe<Scalars["DateTime"]["output"]>;
user: UserGql;
};
export type CountLeaderboardGql = { export type CountLeaderboardGql = {
__typename?: "CountLeaderboardGQL"; __typename?: "CountLeaderboardGQL";
entries: Array<UserShotCountEntry>; entries: Array<UserShotCountEntry>;
@ -235,6 +245,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -278,6 +289,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -321,6 +333,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -364,6 +377,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -407,6 +421,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -450,6 +465,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -493,6 +509,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -536,6 +553,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -579,6 +597,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -622,6 +641,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -665,6 +685,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -708,6 +729,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -751,6 +773,7 @@ export type FilterInput =
falsePositiveScore: FloatRangeFilter; falsePositiveScore: FloatRangeFilter;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -794,6 +817,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating: FloatRangeFilter; fargoRating: FloatRangeFilter;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -837,6 +861,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType: Array<PocketEnum>; intendedPocketType: Array<PocketEnum>;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -880,6 +905,51 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: 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"]>; isDirect: Array<Scalars["Boolean"]["input"]>;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -923,6 +993,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft: Array<Scalars["Boolean"]["input"]>; isLeft: Array<Scalars["Boolean"]["input"]>;
isLeftMiss?: never; isLeftMiss?: never;
@ -966,6 +1037,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss: Array<Scalars["Boolean"]["input"]>; isLeftMiss: Array<Scalars["Boolean"]["input"]>;
@ -1009,6 +1081,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1052,6 +1125,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1095,6 +1169,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1138,6 +1213,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1181,6 +1257,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1224,6 +1301,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1267,6 +1345,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1310,6 +1389,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1353,6 +1433,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1396,6 +1477,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1439,6 +1521,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1482,6 +1565,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1525,6 +1609,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1568,6 +1653,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1611,6 +1697,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1654,6 +1741,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1697,6 +1785,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1740,6 +1829,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1783,6 +1873,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1826,6 +1917,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1869,6 +1961,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1912,6 +2005,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -1955,6 +2049,7 @@ export type FilterInput =
falsePositiveScore?: never; falsePositiveScore?: never;
fargoRating?: never; fargoRating?: never;
intendedPocketType?: never; intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never; isDirect?: never;
isLeft?: never; isLeft?: never;
isLeftMiss?: never; isLeftMiss?: never;
@ -2141,10 +2236,13 @@ export type MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailed
export type Mutation = { export type Mutation = {
__typename?: "Mutation"; __typename?: "Mutation";
addAnnotationToShot: AddShotAnnotationReturn; addAnnotationToShot: AddShotAnnotationReturn;
commentOnVideo: Scalars["Boolean"]["output"];
createBucketSet: BucketSetGql; createBucketSet: BucketSetGql;
createUploadStream: CreateUploadStreamReturn; createUploadStream: CreateUploadStreamReturn;
deleteComment: Scalars["Boolean"]["output"];
deleteTags: Scalars["Boolean"]["output"]; deleteTags: Scalars["Boolean"]["output"];
deleteVideo: Scalars["Boolean"]["output"]; deleteVideo: Scalars["Boolean"]["output"];
editComment: Scalars["Boolean"]["output"];
editProfileImageUri: UserGql; editProfileImageUri: UserGql;
editShot: EditShotReturn; editShot: EditShotReturn;
editUploadStream: Scalars["Boolean"]["output"]; editUploadStream: Scalars["Boolean"]["output"];
@ -2154,6 +2252,7 @@ export type Mutation = {
getHlsInitUploadLink: GetUploadLinkReturn; getHlsInitUploadLink: GetUploadLinkReturn;
getProfileImageUploadLink: GetProfileUploadLinkReturn; getProfileImageUploadLink: GetProfileUploadLinkReturn;
getUploadLink: GetUploadLinkReturn; getUploadLink: GetUploadLinkReturn;
reactToVideo: Scalars["Boolean"]["output"];
retireTags: Scalars["Boolean"]["output"]; retireTags: Scalars["Boolean"]["output"];
setLoggerLevel: Scalars["Boolean"]["output"]; setLoggerLevel: Scalars["Boolean"]["output"];
setSegmentDuration: Scalars["Boolean"]["output"]; setSegmentDuration: Scalars["Boolean"]["output"];
@ -2167,6 +2266,12 @@ export type MutationAddAnnotationToShotArgs = {
shotId: Scalars["Int"]["input"]; shotId: Scalars["Int"]["input"];
}; };
export type MutationCommentOnVideoArgs = {
message: Scalars["String"]["input"];
parentCommentId?: InputMaybe<Scalars["Int"]["input"]>;
videoId: Scalars["Int"]["input"];
};
export type MutationCreateBucketSetArgs = { export type MutationCreateBucketSetArgs = {
params: CreateBucketSetInput; params: CreateBucketSetInput;
}; };
@ -2175,6 +2280,11 @@ export type MutationCreateUploadStreamArgs = {
videoMetadata: VideoMetadataInput; videoMetadata: VideoMetadataInput;
}; };
export type MutationDeleteCommentArgs = {
commentId: Scalars["Int"]["input"];
videoId: Scalars["Int"]["input"];
};
export type MutationDeleteTagsArgs = { export type MutationDeleteTagsArgs = {
tagsToDelete: Array<VideoTagInput>; tagsToDelete: Array<VideoTagInput>;
videoId: Scalars["Int"]["input"]; videoId: Scalars["Int"]["input"];
@ -2184,6 +2294,12 @@ export type MutationDeleteVideoArgs = {
videoId: Scalars["Int"]["input"]; videoId: Scalars["Int"]["input"];
}; };
export type MutationEditCommentArgs = {
commentId: Scalars["Int"]["input"];
newMessage: Scalars["String"]["input"];
videoId: Scalars["Int"]["input"];
};
export type MutationEditProfileImageUriArgs = { export type MutationEditProfileImageUriArgs = {
profileImageUri: Scalars["String"]["input"]; profileImageUri: Scalars["String"]["input"];
}; };
@ -2224,6 +2340,11 @@ export type MutationGetUploadLinkArgs = {
videoId: Scalars["Int"]["input"]; videoId: Scalars["Int"]["input"];
}; };
export type MutationReactToVideoArgs = {
reaction?: InputMaybe<ReactionEnum>;
videoId: Scalars["Int"]["input"];
};
export type MutationRetireTagsArgs = { export type MutationRetireTagsArgs = {
tagIds: Array<Scalars["Int"]["input"]>; tagIds: Array<Scalars["Int"]["input"]>;
}; };
@ -2480,6 +2601,22 @@ export type QueryWaitForArgs = {
duration: Scalars["Float"]["input"]; duration: Scalars["Float"]["input"];
}; };
export enum ReactionEnum {
Bullseye = "BULLSEYE",
Heart = "HEART",
Hundred = "HUNDRED",
Like = "LIKE",
}
export type ReactionGql = {
__typename?: "ReactionGQL";
createdAt?: Maybe<Scalars["DateTime"]["output"]>;
reaction: ReactionEnum;
updatedAt?: Maybe<Scalars["DateTime"]["output"]>;
user: UserGql;
videoId: Scalars["Int"]["output"];
};
export type RequestedMedalsGql = { export type RequestedMedalsGql = {
__typename?: "RequestedMedalsGQL"; __typename?: "RequestedMedalsGQL";
dailyMakes50?: Maybe<MedalGql>; dailyMakes50?: Maybe<MedalGql>;
@ -2901,6 +3038,7 @@ export type VideoGql = {
__typename?: "VideoGQL"; __typename?: "VideoGQL";
averageDifficulty?: Maybe<Scalars["Float"]["output"]>; averageDifficulty?: Maybe<Scalars["Float"]["output"]>;
averageTimeBetweenShots?: Maybe<Scalars["Float"]["output"]>; averageTimeBetweenShots?: Maybe<Scalars["Float"]["output"]>;
comments: Array<CommentGql>;
createdAt?: Maybe<Scalars["DateTime"]["output"]>; createdAt?: Maybe<Scalars["DateTime"]["output"]>;
currentHomography?: Maybe<HomographyInfoGql>; currentHomography?: Maybe<HomographyInfoGql>;
currentProcessing?: Maybe<VideoProcessingGql>; currentProcessing?: Maybe<VideoProcessingGql>;
@ -2915,6 +3053,7 @@ export type VideoGql = {
owner?: Maybe<UserGql>; owner?: Maybe<UserGql>;
playlist?: Maybe<HlsPlaylistGql>; playlist?: Maybe<HlsPlaylistGql>;
private: Scalars["Boolean"]["output"]; private: Scalars["Boolean"]["output"];
reactions: Array<ReactionGql>;
screenshotUri?: Maybe<Scalars["String"]["output"]>; screenshotUri?: Maybe<Scalars["String"]["output"]>;
shots: Array<ShotGql>; shots: Array<ShotGql>;
startTime?: Maybe<Scalars["DateTime"]["output"]>; startTime?: Maybe<Scalars["DateTime"]["output"]>;
@ -3102,6 +3241,17 @@ export type GetFeedQuery = {
status: ProcessingStatusEnum; status: ProcessingStatusEnum;
}>; }>;
} | null; } | null;
reactions: Array<{
__typename?: "ReactionGQL";
videoId: number;
reaction: ReactionEnum;
user: {
__typename?: "UserGQL";
id: number;
username: string;
profileImageUri?: string | null;
};
}>;
}>; }>;
pageInfo: { pageInfo: {
__typename?: "PageInfoGQL"; __typename?: "PageInfoGQL";
@ -3155,6 +3305,17 @@ export type VideoCardFieldsFragment = {
status: ProcessingStatusEnum; status: ProcessingStatusEnum;
}>; }>;
} | null; } | null;
reactions: Array<{
__typename?: "ReactionGQL";
videoId: number;
reaction: ReactionEnum;
user: {
__typename?: "UserGQL";
id: number;
username: string;
profileImageUri?: string | null;
};
}>;
}; };
export type GetVideoFeedQueryVariables = Exact<{ export type GetVideoFeedQueryVariables = Exact<{
@ -3217,6 +3378,17 @@ export type GetVideoFeedQuery = {
status: ProcessingStatusEnum; status: ProcessingStatusEnum;
}>; }>;
} | null; } | null;
reactions: Array<{
__typename?: "ReactionGQL";
videoId: number;
reaction: ReactionEnum;
user: {
__typename?: "UserGQL";
id: number;
username: string;
profileImageUri?: string | null;
};
}>;
}>; }>;
pageInfo: { pageInfo: {
__typename?: "PageInfoGQL"; __typename?: "PageInfoGQL";
@ -3420,6 +3592,16 @@ export type GetMedalsQuery = {
}; };
}; };
export type ReactToVideoMutationVariables = Exact<{
videoId: Scalars["Int"]["input"];
reaction?: InputMaybe<ReactionEnum>;
}>;
export type ReactToVideoMutation = {
__typename?: "Mutation";
reactToVideo: boolean;
};
export type GetRunsForHighlightsQueryVariables = Exact<{ export type GetRunsForHighlightsQueryVariables = Exact<{
filterInput: RunFilterInput; filterInput: RunFilterInput;
runIds?: InputMaybe<Array<Scalars["Int"]["input"]> | Scalars["Int"]["input"]>; runIds?: InputMaybe<Array<Scalars["Int"]["input"]> | Scalars["Int"]["input"]>;
@ -3870,6 +4052,16 @@ export type RetireTagsMutation = {
retireTags: boolean; 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<{ export type GetProfileImageUploadLinkMutationVariables = Exact<{
fileExt?: InputMaybe<Scalars["String"]["input"]>; fileExt?: InputMaybe<Scalars["String"]["input"]>;
}>; }>;
@ -4888,6 +5080,15 @@ export const VideoCardFieldsFragmentDoc = gql`
status status
} }
} }
reactions {
videoId
user {
id
username
profileImageUri
}
reaction
}
} }
`; `;
export const MedalFieldsFragmentDoc = gql` export const MedalFieldsFragmentDoc = gql`
@ -5813,6 +6014,55 @@ export type GetMedalsQueryResult = Apollo.QueryResult<
GetMedalsQuery, GetMedalsQuery,
GetMedalsQueryVariables GetMedalsQueryVariables
>; >;
export const ReactToVideoDocument = gql`
mutation ReactToVideo($videoId: Int!, $reaction: ReactionEnum) {
reactToVideo(videoId: $videoId, reaction: $reaction)
}
`;
export type ReactToVideoMutationFn = Apollo.MutationFunction<
ReactToVideoMutation,
ReactToVideoMutationVariables
>;
/**
* __useReactToVideoMutation__
*
* To run a mutation, you first call `useReactToVideoMutation` within a React component and pass it any options that fit your needs.
* When your component renders, `useReactToVideoMutation` 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 [reactToVideoMutation, { data, loading, error }] = useReactToVideoMutation({
* variables: {
* videoId: // value for 'videoId'
* reaction: // value for 'reaction'
* },
* });
*/
export function useReactToVideoMutation(
baseOptions?: Apollo.MutationHookOptions<
ReactToVideoMutation,
ReactToVideoMutationVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useMutation<
ReactToVideoMutation,
ReactToVideoMutationVariables
>(ReactToVideoDocument, options);
}
export type ReactToVideoMutationHookResult = ReturnType<
typeof useReactToVideoMutation
>;
export type ReactToVideoMutationResult =
Apollo.MutationResult<ReactToVideoMutation>;
export type ReactToVideoMutationOptions = Apollo.BaseMutationOptions<
ReactToVideoMutation,
ReactToVideoMutationVariables
>;
export const GetRunsForHighlightsDocument = gql` export const GetRunsForHighlightsDocument = gql`
query GetRunsForHighlights( query GetRunsForHighlights(
$filterInput: RunFilterInput! $filterInput: RunFilterInput!
@ -6668,6 +6918,55 @@ export type RetireTagsMutationOptions = Apollo.BaseMutationOptions<
RetireTagsMutation, RetireTagsMutation,
RetireTagsMutationVariables 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` export const GetProfileImageUploadLinkDocument = gql`
mutation getProfileImageUploadLink($fileExt: String = ".png") { mutation getProfileImageUploadLink($fileExt: String = ".png") {
getProfileImageUploadLink(fileExt: $fileExt) { getProfileImageUploadLink(fileExt: $fileExt) {

View File

@ -58,6 +58,15 @@ fragment VideoCardFields on VideoGQL {
status status
} }
} }
reactions {
videoId
user {
id
username
profileImageUri
}
reaction
}
} }
query GetVideoFeed( query GetVideoFeed(

View File

@ -0,0 +1,3 @@
mutation ReactToVideo($videoId: Int!, $reaction: ReactionEnum) {
reactToVideo(videoId: $videoId, reaction: $reaction)
}

View File

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

View File

@ -195,6 +195,7 @@ input FilterInput @oneOf {
isLeftMiss: [Boolean!] isLeftMiss: [Boolean!]
isRightMiss: [Boolean!] isRightMiss: [Boolean!]
isDirect: [Boolean!] isDirect: [Boolean!]
isBreakHeuristic: [Boolean!]
tableSize: FloatRangeFilter tableSize: FloatRangeFilter
bankAngle: FloatRangeFilter bankAngle: FloatRangeFilter
bankDistance: FloatRangeFilter bankDistance: FloatRangeFilter
@ -478,6 +479,8 @@ type VideoGQL {
currentHomography: HomographyInfoGQL currentHomography: HomographyInfoGQL
homographyHistory: [HomographyInfoGQL!]! homographyHistory: [HomographyInfoGQL!]!
currentProcessing: VideoProcessingGQL currentProcessing: VideoProcessingGQL
reactions: [ReactionGQL!]!
comments: [CommentGQL!]!
} }
type UploadStreamGQL { type UploadStreamGQL {
@ -611,6 +614,30 @@ type VideoProcessingStatusGQL {
updatedAt: DateTime updatedAt: DateTime
} }
type ReactionGQL {
videoId: Int!
user: UserGQL!
reaction: ReactionEnum!
createdAt: DateTime
updatedAt: DateTime
}
type CommentGQL {
id: Int!
user: UserGQL!
message: String!
replies: [CommentGQL!]!
createdAt: DateTime
updatedAt: DateTime
}
enum ReactionEnum {
LIKE
HEART
BULLSEYE
HUNDRED
}
type RunFeaturesGQL { type RunFeaturesGQL {
runId: Int! runId: Int!
indexInRun: Int! indexInRun: Int!
@ -800,6 +827,14 @@ type Mutation {
editUploadStream(videoId: Int!, videoMetadata: VideoMetadataInput!): Boolean! editUploadStream(videoId: Int!, videoMetadata: VideoMetadataInput!): Boolean!
deleteVideo(videoId: Int!): Boolean! deleteVideo(videoId: Int!): Boolean!
deleteTags(videoId: Int!, tagsToDelete: [VideoTagInput!]!): 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 { input CreateBucketSetInput {
@ -834,7 +869,7 @@ type AddShotAnnotationReturn {
} }
union SuccessfulAddAddShotAnnotationErrors = union SuccessfulAddAddShotAnnotationErrors =
SuccessfulAdd | SuccessfulAdd
| AddShotAnnotationErrors | AddShotAnnotationErrors
type SuccessfulAdd { type SuccessfulAdd {
@ -846,7 +881,7 @@ type AddShotAnnotationErrors {
} }
union DoesNotOwnShotErrOtherErrorNeedsNote = union DoesNotOwnShotErrOtherErrorNeedsNote =
DoesNotOwnShotErr | DoesNotOwnShotErr
| OtherErrorNeedsNote | OtherErrorNeedsNote
type OtherErrorNeedsNote { type OtherErrorNeedsNote {
@ -868,7 +903,7 @@ type GetProfileUploadLinkReturn {
} }
union UploadLinkGetProfileUploadLinkErrors = union UploadLinkGetProfileUploadLinkErrors =
UploadLink | UploadLink
| GetProfileUploadLinkErrors | GetProfileUploadLinkErrors
type UploadLink { type UploadLink {
@ -937,7 +972,7 @@ type GetUploadLinkErrors {
} }
union MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailedErrNoInitForChunkedUploadErrTooManyProfileImageUploadsErrInitUploadAlreadyCompletedErrTooManyInitUploadsErr = union MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailedErrNoInitForChunkedUploadErrTooManyProfileImageUploadsErrInitUploadAlreadyCompletedErrTooManyInitUploadsErr =
MustHaveSetForUploadLinkErr | MustHaveSetForUploadLinkErr
| SegmentAlreadyUploadedErr | SegmentAlreadyUploadedErr
| ProcessingFailedErr | ProcessingFailedErr
| NoInitForChunkedUploadErr | NoInitForChunkedUploadErr