Compare commits

..

36 Commits

Author SHA1 Message Date
d6b9d5e9c5 merge
All checks were successful
Tests / Tests (pull_request) Successful in 16s
2025-03-31 14:25:39 -07:00
1f33ba2531 Add support for video reaction 2025-03-31 14:24:58 -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
7ff60dc9c5 Merge pull request 'Revert "Merge pull request 'Add functionality for retiring tags' (#165) from mk/retire-tags-gql into master"' (#166) from mk/revert-retire-tags into master
Reviewed-on: #166
2025-03-19 15:08:16 -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
9f26b5aa0f Revert "Merge pull request 'Add functionality for retiring tags' (#165) from mk/retire-tags-gql into master"
All checks were successful
Tests / Tests (pull_request) Successful in 8s
This reverts commit 70303b9363, reversing
changes made to 7a9d2545c4.
2025-03-19 14:05:41 -07:00
70303b9363 Merge pull request 'Add functionality for retiring tags' (#165) from mk/retire-tags-gql into master
Reviewed-on: #165
2025-03-17 15:09:54 -06:00
9ee1422d3e Add functionality for retiring tags
All checks were successful
Tests / Tests (pull_request) Successful in 7s
2025-03-17 14:09:19 -07:00
7a9d2545c4 Merge pull request 'Add average time field to video in feed operation' (#164) from loewy/add-average-time-per-shot-in-feed-operation into master
Reviewed-on: #164
2025-03-11 14:42:24 -06:00
c561ea20ab add average difficulty
All checks were successful
Tests / Tests (pull_request) Successful in 7s
2025-03-11 13:41:37 -07:00
7ce0c058b7 add average time field to video in feed operation
All checks were successful
Tests / Tests (pull_request) Successful in 8s
2025-03-11 13:10:34 -07:00
c399edd882 Merge pull request 'Add average difficulty in VideoGql' (#163) from loewy/average-difficulty-in-video-gql into master
Reviewed-on: #163
2025-03-07 17:18:36 -07:00
32d8cb0d41 add average diff in videogql
All checks were successful
Tests / Tests (pull_request) Successful in 20s
2025-03-07 16:16:42 -08:00
9d912ed21e Add time to segment information 2025-02-26 20:30:39 -07:00
0bcfd32b14 Add start segment and end segment client side fields 2025-02-26 19:29:15 -07:00
9b27d288da Merge pull request 'Add shots to runs operation to get the id' (#162) from loewy/add-shots-in-runs into master
Reviewed-on: #162
2025-02-20 15:02:43 -07:00
b0f94f5ea8 add shots to runs to get id
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2025-02-20 12:37:52 -08:00
de653ba54c Merge pull request 'Add tagClasses to getUserTags operation' (#161) from loewy/getUserTags-operation into master
Reviewed-on: #161
2025-02-05 13:51:14 -07:00
2657628a54 add tagClasses to operation
All checks were successful
Tests / Tests (pull_request) Successful in 8s
2025-02-05 12:48:56 -08:00
cd20cfcb40 Add get runs for highlights 2025-02-04 20:57:22 -07:00
2657a9baf7 Merge pull request 'Return tag classes with tag' (#160) from kat/return-tag-classes-with-tag into master
Reviewed-on: #160
2025-02-04 19:16:15 -07:00
9bb4b7c513 Return tag classes with tag
All checks were successful
Tests / Tests (pull_request) Successful in 15s
2025-02-04 19:14:55 -07:00
a5050ed08d Merge pull request 'Revert previous commit 021cd35278ea74f6971ae021b33ddc1bba020e6d' (#159) from loewy/revert-adding-group into master
Reviewed-on: #159
2025-02-04 15:42:41 -07:00
b9e26243e9 revert
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2025-02-04 14:41:11 -08:00
021cd35278 Merge pull request 'Add group in return for user tags' (#158) from loewy/add-group-to-get-user-tags into master
Reviewed-on: #158
2025-02-04 14:48:11 -07:00
8dda81236a add group to return for user tags
All checks were successful
Tests / Tests (pull_request) Successful in 16s
2025-02-04 13:44:58 -08:00
c7ff615fe4 Create tags in video metadata (#157)
Reviewed-on: #157
2025-02-03 16:43:25 -07:00
8 changed files with 497 additions and 7 deletions

View File

@@ -1,9 +1,16 @@
# see: https://www.apollographql.com/docs/react/local-state/managing-state-with-field-policies/
directive @client on FIELD
type SegmentInfo {
index: Int!
time: Float!
}
extend type ShotGQL {
startTime: Float!
endTime: Float!
startSegment: SegmentInfo!
endSegment: SegmentInfo!
}
extend type UploadStreamGQL {

View File

@@ -235,6 +235,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -278,6 +279,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -321,6 +323,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -364,6 +367,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -407,6 +411,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -450,6 +455,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -493,6 +499,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -536,6 +543,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -579,6 +587,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -622,6 +631,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -665,6 +675,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -708,6 +719,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -751,6 +763,7 @@ export type FilterInput =
falsePositiveScore: FloatRangeFilter;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -794,6 +807,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating: FloatRangeFilter;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -837,6 +851,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType: Array<PocketEnum>;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -880,6 +895,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 +983,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft: Array<Scalars["Boolean"]["input"]>;
isLeftMiss?: never;
@@ -966,6 +1027,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss: Array<Scalars["Boolean"]["input"]>;
@@ -1009,6 +1071,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1052,6 +1115,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1095,6 +1159,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1138,6 +1203,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1181,6 +1247,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1224,6 +1291,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1267,6 +1335,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1310,6 +1379,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1353,6 +1423,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1396,6 +1467,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1439,6 +1511,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1482,6 +1555,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1525,6 +1599,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1568,6 +1643,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1611,6 +1687,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1654,6 +1731,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1697,6 +1775,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1740,6 +1819,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1783,6 +1863,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1826,6 +1907,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1869,6 +1951,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1912,6 +1995,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -1955,6 +2039,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@@ -2143,6 +2228,7 @@ export type Mutation = {
addAnnotationToShot: AddShotAnnotationReturn;
createBucketSet: BucketSetGql;
createUploadStream: CreateUploadStreamReturn;
deleteTags: Scalars["Boolean"]["output"];
deleteVideo: Scalars["Boolean"]["output"];
editProfileImageUri: UserGql;
editShot: EditShotReturn;
@@ -2153,6 +2239,8 @@ export type Mutation = {
getHlsInitUploadLink: GetUploadLinkReturn;
getProfileImageUploadLink: GetProfileUploadLinkReturn;
getUploadLink: GetUploadLinkReturn;
reactToVideo: Scalars["Boolean"]["output"];
retireTags: Scalars["Boolean"]["output"];
setLoggerLevel: Scalars["Boolean"]["output"];
setSegmentDuration: Scalars["Boolean"]["output"];
unfollowUser: UserGql;
@@ -2173,6 +2261,11 @@ export type MutationCreateUploadStreamArgs = {
videoMetadata: VideoMetadataInput;
};
export type MutationDeleteTagsArgs = {
tagsToDelete: Array<VideoTagInput>;
videoId: Scalars["Int"]["input"];
};
export type MutationDeleteVideoArgs = {
videoId: Scalars["Int"]["input"];
};
@@ -2217,6 +2310,15 @@ export type MutationGetUploadLinkArgs = {
videoId: Scalars["Int"]["input"];
};
export type MutationReactToVideoArgs = {
reaction?: InputMaybe<ReactionEnum>;
videoId: Scalars["Int"]["input"];
};
export type MutationRetireTagsArgs = {
tagIds: Array<Scalars["Int"]["input"]>;
};
export type MutationSetLoggerLevelArgs = {
level: Scalars["String"]["input"];
path: Scalars["String"]["input"];
@@ -2434,6 +2536,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>;
@@ -2465,6 +2571,22 @@ export type QueryWaitForArgs = {
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 = {
__typename?: "RequestedMedalsGQL";
dailyMakes50?: Maybe<MedalGql>;
@@ -2556,6 +2678,12 @@ export type SegmentEndFramesGql = {
segmentEndFrames: Array<Scalars["Int"]["output"]>;
};
export type SegmentInfo = {
__typename?: "SegmentInfo";
index: Scalars["Int"]["output"];
time: Scalars["Float"]["output"];
};
export type SegmentStartTimesGql = {
__typename?: "SegmentStartTimesGQL";
id: Scalars["Int"]["output"];
@@ -2608,6 +2736,7 @@ export type ShotGql = {
createdAt?: Maybe<Scalars["DateTime"]["output"]>;
cueObjectFeatures?: Maybe<CueObjectFeaturesGql>;
endFrame: Scalars["Int"]["output"];
endSegment: SegmentInfo;
endTime: Scalars["Float"]["output"];
falsePositiveScore?: Maybe<Scalars["Float"]["output"]>;
id: Scalars["Int"]["output"];
@@ -2617,6 +2746,7 @@ export type ShotGql = {
runFeatures?: Maybe<RunFeaturesGql>;
serializedShotPaths?: Maybe<SerializedShotPathsGql>;
startFrame: Scalars["Int"]["output"];
startSegment: SegmentInfo;
startTime: Scalars["Float"]["output"];
updatedAt?: Maybe<Scalars["DateTime"]["output"]>;
user?: Maybe<UserGql>;
@@ -2708,13 +2838,20 @@ export type SuccessfulAddAddShotAnnotationErrors =
| AddShotAnnotationErrors
| SuccessfulAdd;
export type TagGql = {
__typename?: "TagGQL";
group?: Maybe<Scalars["String"]["output"]>;
export type TagClassGql = {
__typename?: "TagClassGQL";
id: Scalars["Int"]["output"];
name: Scalars["String"]["output"];
};
export type TagGql = {
__typename?: "TagGQL";
id: Scalars["Int"]["output"];
name: Scalars["String"]["output"];
retired: Scalars["Boolean"]["output"];
tagClasses?: Maybe<Array<TagClassGql>>;
};
export type TargetMetricsGql = {
__typename?: "TargetMetricsGQL";
averageDifficulty?: Maybe<Scalars["Float"]["output"]>;
@@ -2869,6 +3006,7 @@ export type VideoFilterInput = {
export type VideoGql = {
__typename?: "VideoGQL";
averageDifficulty?: Maybe<Scalars["Float"]["output"]>;
averageTimeBetweenShots?: Maybe<Scalars["Float"]["output"]>;
createdAt?: Maybe<Scalars["DateTime"]["output"]>;
currentHomography?: Maybe<HomographyInfoGql>;
@@ -2884,6 +3022,7 @@ export type VideoGql = {
owner?: Maybe<UserGql>;
playlist?: Maybe<HlsPlaylistGql>;
private: Scalars["Boolean"]["output"];
reactions: Array<ReactionGql>;
screenshotUri?: Maybe<Scalars["String"]["output"]>;
shots: Array<ShotGql>;
startTime?: Maybe<Scalars["DateTime"]["output"]>;
@@ -3032,6 +3171,8 @@ export type GetFeedQuery = {
totalShotsMade: number;
totalShots: number;
makePercentage: number;
averageTimeBetweenShots?: number | null;
averageDifficulty?: number | null;
createdAt?: any | null;
updatedAt?: any | null;
startTime?: any | null;
@@ -3086,6 +3227,8 @@ export type VideoCardFieldsFragment = {
totalShotsMade: number;
totalShots: number;
makePercentage: number;
averageTimeBetweenShots?: number | null;
averageDifficulty?: number | null;
createdAt?: any | null;
updatedAt?: any | null;
startTime?: any | null;
@@ -3143,6 +3286,8 @@ export type GetVideoFeedQuery = {
totalShotsMade: number;
totalShots: number;
makePercentage: number;
averageTimeBetweenShots?: number | null;
averageDifficulty?: number | null;
createdAt?: any | null;
updatedAt?: any | null;
startTime?: any | null;
@@ -3383,6 +3528,29 @@ export type GetMedalsQuery = {
};
};
export type GetRunsForHighlightsQueryVariables = Exact<{
filterInput: RunFilterInput;
runIds?: InputMaybe<Array<Scalars["Int"]["input"]> | Scalars["Int"]["input"]>;
runsOrdering?: InputMaybe<GetRunsOrdering>;
}>;
export type GetRunsForHighlightsQuery = {
__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 }>;
}>;
};
};
export type GetSerializedShotPathsQueryVariables = Exact<{
filterInput: FilterInput;
}>;
@@ -3510,6 +3678,8 @@ export type GetShotsWithMetadataFilterResultQuery = {
falsePositiveScore?: number | null;
createdAt?: any | null;
updatedAt?: any | null;
startSegment: { __typename?: "SegmentInfo"; index: number; time: number };
endSegment: { __typename?: "SegmentInfo"; index: number; time: number };
user?: { __typename?: "UserGQL"; id: number } | null;
cueObjectFeatures?: {
__typename?: "CueObjectFeaturesGQL";
@@ -3577,6 +3747,8 @@ export type GetShotsWithMetadataQuery = {
falsePositiveScore?: number | null;
createdAt?: any | null;
updatedAt?: any | null;
startSegment: { __typename?: "SegmentInfo"; index: number; time: number };
endSegment: { __typename?: "SegmentInfo"; index: number; time: number };
user?: { __typename?: "UserGQL"; id: number } | null;
cueObjectFeatures?: {
__typename?: "CueObjectFeaturesGQL";
@@ -3637,6 +3809,8 @@ export type GetShotsByIdsQuery = {
falsePositiveScore?: number | null;
createdAt?: any | null;
updatedAt?: any | null;
startSegment: { __typename?: "SegmentInfo"; index: number; time: number };
endSegment: { __typename?: "SegmentInfo"; index: number; time: number };
user?: { __typename?: "UserGQL"; id: number } | null;
cueObjectFeatures?: {
__typename?: "CueObjectFeaturesGQL";
@@ -3686,6 +3860,8 @@ export type ShotWithAllFeaturesFragment = {
falsePositiveScore?: number | null;
createdAt?: any | null;
updatedAt?: any | null;
startSegment: { __typename?: "SegmentInfo"; index: number; time: number };
endSegment: { __typename?: "SegmentInfo"; index: number; time: number };
user?: { __typename?: "UserGQL"; id: number } | null;
cueObjectFeatures?: {
__typename?: "CueObjectFeaturesGQL";
@@ -3748,6 +3924,8 @@ export type EditShotMutation = {
falsePositiveScore?: number | null;
createdAt?: any | null;
updatedAt?: any | null;
startSegment: { __typename?: "SegmentInfo"; index: number; time: number };
endSegment: { __typename?: "SegmentInfo"; index: number; time: number };
user?: { __typename?: "UserGQL"; id: number } | null;
cueObjectFeatures?: {
__typename?: "CueObjectFeaturesGQL";
@@ -3791,6 +3969,25 @@ export type EditShotMutation = {
};
};
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"]>;
}>;
@@ -3930,7 +4127,16 @@ export type GetUserTagsQueryVariables = Exact<{ [key: string]: never }>;
export type GetUserTagsQuery = {
__typename?: "Query";
getUserTags: Array<{ __typename?: "TagGQL"; id: number; name: string }>;
getUserTags: Array<{
__typename?: "TagGQL";
id: number;
name: string;
tagClasses?: Array<{
__typename?: "TagClassGQL";
id: number;
name: string;
}> | null;
}>;
};
export type FollowUserMutationVariables = Exact<{
@@ -4769,6 +4975,8 @@ export const VideoCardFieldsFragmentDoc = gql`
totalShotsMade
totalShots
makePercentage
averageTimeBetweenShots
averageDifficulty
createdAt
updatedAt
startTime
@@ -4814,6 +5022,14 @@ export const ShotWithAllFeaturesFragmentDoc = gql`
endFrame
startTime @client
endTime @client
startSegment @client {
index
time
}
endSegment @client {
index
time
}
user {
id
}
@@ -5715,6 +5931,100 @@ export type GetMedalsQueryResult = Apollo.QueryResult<
GetMedalsQuery,
GetMedalsQueryVariables
>;
export const GetRunsForHighlightsDocument = gql`
query GetRunsForHighlights(
$filterInput: RunFilterInput!
$runIds: [Int!] = null
$runsOrdering: GetRunsOrdering
) {
getRuns(
filterInput: $filterInput
runIds: $runIds
runsOrdering: $runsOrdering
) {
count
runs {
id
runLength
userId
videoId
shots {
videoId
id
}
}
runIds
}
}
`;
/**
* __useGetRunsForHighlightsQuery__
*
* To run a query within a React component, call `useGetRunsForHighlightsQuery` and pass it any options that fit your needs.
* When your component renders, `useGetRunsForHighlightsQuery` 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 } = useGetRunsForHighlightsQuery({
* variables: {
* filterInput: // value for 'filterInput'
* runIds: // value for 'runIds'
* runsOrdering: // value for 'runsOrdering'
* },
* });
*/
export function useGetRunsForHighlightsQuery(
baseOptions: Apollo.QueryHookOptions<
GetRunsForHighlightsQuery,
GetRunsForHighlightsQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useQuery<
GetRunsForHighlightsQuery,
GetRunsForHighlightsQueryVariables
>(GetRunsForHighlightsDocument, options);
}
export function useGetRunsForHighlightsLazyQuery(
baseOptions?: Apollo.LazyQueryHookOptions<
GetRunsForHighlightsQuery,
GetRunsForHighlightsQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useLazyQuery<
GetRunsForHighlightsQuery,
GetRunsForHighlightsQueryVariables
>(GetRunsForHighlightsDocument, options);
}
export function useGetRunsForHighlightsSuspenseQuery(
baseOptions?: Apollo.SuspenseQueryHookOptions<
GetRunsForHighlightsQuery,
GetRunsForHighlightsQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useSuspenseQuery<
GetRunsForHighlightsQuery,
GetRunsForHighlightsQueryVariables
>(GetRunsForHighlightsDocument, options);
}
export type GetRunsForHighlightsQueryHookResult = ReturnType<
typeof useGetRunsForHighlightsQuery
>;
export type GetRunsForHighlightsLazyQueryHookResult = ReturnType<
typeof useGetRunsForHighlightsLazyQuery
>;
export type GetRunsForHighlightsSuspenseQueryHookResult = ReturnType<
typeof useGetRunsForHighlightsSuspenseQuery
>;
export type GetRunsForHighlightsQueryResult = Apollo.QueryResult<
GetRunsForHighlightsQuery,
GetRunsForHighlightsQueryVariables
>;
export const GetSerializedShotPathsDocument = gql`
query GetSerializedShotPaths($filterInput: FilterInput!) {
getShots(filterInput: $filterInput) {
@@ -6428,6 +6738,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) {
@@ -6935,6 +7342,10 @@ export const GetUserTagsDocument = gql`
getUserTags {
id
name
tagClasses {
id
name
}
}
}
`;

View File

@@ -27,6 +27,8 @@ fragment VideoCardFields on VideoGQL {
totalShotsMade
totalShots
makePercentage
averageTimeBetweenShots
averageDifficulty
createdAt
updatedAt
startTime

24
src/operations/runs.gql Normal file
View File

@@ -0,0 +1,24 @@
query GetRunsForHighlights(
$filterInput: RunFilterInput!
$runIds: [Int!] = null
$runsOrdering: GetRunsOrdering
) {
getRuns(
filterInput: $filterInput
runIds: $runIds
runsOrdering: $runsOrdering
) {
count
runs {
id
runLength
userId
videoId
shots {
videoId
id
}
}
runIds
}
}

View File

@@ -139,6 +139,14 @@ fragment ShotWithAllFeatures on ShotGQL {
endFrame
startTime @client
endTime @client
startSegment @client {
index
time
}
endSegment @client {
index
time
}
user {
id
}

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

@@ -79,6 +79,10 @@ query GetUserTags {
getUserTags {
id
name
tagClasses {
id
name
}
}
}

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
@@ -462,6 +463,7 @@ type VideoGQL {
makePercentage: Float!
medianRun: Float
averageTimeBetweenShots: Float
averageDifficulty: Float
createdAt: DateTime
updatedAt: DateTime
shots: [ShotGQL!]!
@@ -477,6 +479,7 @@ type VideoGQL {
currentHomography: HomographyInfoGQL
homographyHistory: [HomographyInfoGQL!]!
currentProcessing: VideoProcessingGQL
reactions: [ReactionGQL!]!
}
type UploadStreamGQL {
@@ -610,6 +613,21 @@ type VideoProcessingStatusGQL {
updatedAt: DateTime
}
type ReactionGQL {
videoId: Int!
user: UserGQL!
reaction: ReactionEnum!
createdAt: DateTime
updatedAt: DateTime
}
enum ReactionEnum {
LIKE
HEART
BULLSEYE
HUNDRED
}
type RunFeaturesGQL {
runId: Int!
indexInRun: Int!
@@ -714,9 +732,15 @@ type PageInfoGQL {
}
type TagGQL {
name: String!
id: Int!
group: String
name: String!
tagClasses: [TagClassGQL!]
retired: Boolean!
}
type TagClassGQL {
id: Int!
name: String!
}
"""
@@ -778,6 +802,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!
@@ -791,6 +816,8 @@ 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!
}
input CreateBucketSetInput {