Compare commits

..

2 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
6 changed files with 0 additions and 459 deletions

View File

@@ -122,14 +122,6 @@ export enum ClientUploadStatusEnum {
UploadEnabled = "UPLOAD_ENABLED", UploadEnabled = "UPLOAD_ENABLED",
} }
export type CommentGql = {
__typename?: "CommentGQL";
id: Scalars["Int"]["output"];
message: Scalars["String"]["output"];
replies: Array<CommentGql>;
user: UserGql;
};
export type CountLeaderboardGql = { export type CountLeaderboardGql = {
__typename?: "CountLeaderboardGQL"; __typename?: "CountLeaderboardGQL";
entries: Array<UserShotCountEntry>; entries: Array<UserShotCountEntry>;
@@ -2234,13 +2226,10 @@ 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"];
@@ -2264,12 +2253,6 @@ 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;
}; };
@@ -2278,11 +2261,6 @@ 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"];
@@ -2292,12 +2270,6 @@ 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"];
}; };
@@ -3036,7 +3008,6 @@ 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>;
@@ -3220,7 +3191,6 @@ export type GetFeedQuery = {
id: string; id: string;
lastIntendedSegmentBound?: number | null; lastIntendedSegmentBound?: number | null;
isCompleted: boolean; isCompleted: boolean;
streamSegmentType: StreamSegmentTypeEnum;
} | null; } | null;
tags: Array<{ tags: Array<{
__typename?: "VideoTag"; __typename?: "VideoTag";
@@ -3240,23 +3210,6 @@ 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;
followers?: Array<{
__typename?: "UserGQL";
id: number;
username: string;
profileImageUri?: string | null;
}> | null;
};
}>;
}>; }>;
pageInfo: { pageInfo: {
__typename?: "PageInfoGQL"; __typename?: "PageInfoGQL";
@@ -3294,7 +3247,6 @@ export type VideoCardFieldsFragment = {
id: string; id: string;
lastIntendedSegmentBound?: number | null; lastIntendedSegmentBound?: number | null;
isCompleted: boolean; isCompleted: boolean;
streamSegmentType: StreamSegmentTypeEnum;
} | null; } | null;
tags: Array<{ tags: Array<{
__typename?: "VideoTag"; __typename?: "VideoTag";
@@ -3311,23 +3263,6 @@ 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;
followers?: Array<{
__typename?: "UserGQL";
id: number;
username: string;
profileImageUri?: string | null;
}> | null;
};
}>;
}; };
export type GetVideoFeedQueryVariables = Exact<{ export type GetVideoFeedQueryVariables = Exact<{
@@ -3371,7 +3306,6 @@ export type GetVideoFeedQuery = {
id: string; id: string;
lastIntendedSegmentBound?: number | null; lastIntendedSegmentBound?: number | null;
isCompleted: boolean; isCompleted: boolean;
streamSegmentType: StreamSegmentTypeEnum;
} | null; } | null;
tags: Array<{ tags: Array<{
__typename?: "VideoTag"; __typename?: "VideoTag";
@@ -3391,23 +3325,6 @@ 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;
followers?: Array<{
__typename?: "UserGQL";
id: number;
username: string;
profileImageUri?: string | null;
}> | null;
};
}>;
}>; }>;
pageInfo: { pageInfo: {
__typename?: "PageInfoGQL"; __typename?: "PageInfoGQL";
@@ -3611,22 +3528,10 @@ 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"]>;
runsOrdering?: InputMaybe<GetRunsOrdering>; runsOrdering?: InputMaybe<GetRunsOrdering>;
limit?: Scalars["Int"]["input"];
countRespectsLimit?: Scalars["Boolean"]["input"];
}>; }>;
export type GetRunsForHighlightsQuery = { export type GetRunsForHighlightsQuery = {
@@ -3646,55 +3551,6 @@ 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<{ export type GetSerializedShotPathsQueryVariables = Exact<{
filterInput: FilterInput; filterInput: FilterInput;
}>; }>;
@@ -3863,15 +3719,6 @@ export type GetShotsWithMetadataFilterResultQuery = {
name: string; name: string;
}; };
}>; }>;
video?: {
__typename?: "VideoGQL";
id: number;
stream?: {
__typename?: "UploadStreamGQL";
id: string;
streamSegmentType: StreamSegmentTypeEnum;
} | null;
} | null;
}>; }>;
}; };
}; };
@@ -3941,15 +3788,6 @@ export type GetShotsWithMetadataQuery = {
name: string; name: string;
}; };
}>; }>;
video?: {
__typename?: "VideoGQL";
id: number;
stream?: {
__typename?: "UploadStreamGQL";
id: string;
streamSegmentType: StreamSegmentTypeEnum;
} | null;
} | null;
}>; }>;
}; };
}; };
@@ -4008,15 +3846,6 @@ export type GetShotsByIdsQuery = {
notes: string; notes: string;
type: { __typename?: "ShotAnnotationTypeGQL"; id: number; name: string }; type: { __typename?: "ShotAnnotationTypeGQL"; id: number; name: string };
}>; }>;
video?: {
__typename?: "VideoGQL";
id: number;
stream?: {
__typename?: "UploadStreamGQL";
id: string;
streamSegmentType: StreamSegmentTypeEnum;
} | null;
} | null;
}>; }>;
}; };
@@ -4068,15 +3897,6 @@ export type ShotWithAllFeaturesFragment = {
notes: string; notes: string;
type: { __typename?: "ShotAnnotationTypeGQL"; id: number; name: 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<{ export type EditShotMutationVariables = Exact<{
@@ -4145,15 +3965,6 @@ export type EditShotMutation = {
name: string; name: string;
}; };
}>; }>;
video?: {
__typename?: "VideoGQL";
id: number;
stream?: {
__typename?: "UploadStreamGQL";
id: string;
streamSegmentType: StreamSegmentTypeEnum;
} | null;
} | null;
} | null; } | null;
}; };
}; };
@@ -5177,7 +4988,6 @@ export const VideoCardFieldsFragmentDoc = gql`
id id
lastIntendedSegmentBound lastIntendedSegmentBound
isCompleted isCompleted
streamSegmentType
} }
tableSize tableSize
tags { tags {
@@ -5196,20 +5006,6 @@ export const VideoCardFieldsFragmentDoc = gql`
status status
} }
} }
reactions {
videoId
user {
id
username
profileImageUri
followers {
id
username
profileImageUri
}
}
reaction
}
} }
`; `;
export const MedalFieldsFragmentDoc = gql` export const MedalFieldsFragmentDoc = gql`
@@ -5218,17 +5014,6 @@ export const MedalFieldsFragmentDoc = gql`
nickname nickname
} }
`; `;
export const PocketingIntentionFragmentFragmentDoc = gql`
fragment PocketingIntentionFragment on PocketingIntentionFeaturesGQL {
make
targetPocketDistance
targetPocketAngle
targetPocketAngleDirection
marginOfErrorInDegrees
intendedPocketType
difficulty
}
`;
export const ShotWithAllFeaturesFragmentDoc = gql` export const ShotWithAllFeaturesFragmentDoc = gql`
fragment ShotWithAllFeatures on ShotGQL { fragment ShotWithAllFeatures on ShotGQL {
id id
@@ -5283,13 +5068,6 @@ export const ShotWithAllFeaturesFragmentDoc = gql`
} }
notes notes
} }
video {
id
stream {
id
streamSegmentType
}
}
} }
`; `;
export const UserFragmentFragmentDoc = gql` export const UserFragmentFragmentDoc = gql`
@@ -6153,69 +5931,16 @@ 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!
$runIds: [Int!] = null $runIds: [Int!] = null
$runsOrdering: GetRunsOrdering $runsOrdering: GetRunsOrdering
$limit: Int! = 500
$countRespectsLimit: Boolean! = false
) { ) {
getRuns( getRuns(
filterInput: $filterInput filterInput: $filterInput
runIds: $runIds runIds: $runIds
runsOrdering: $runsOrdering runsOrdering: $runsOrdering
limit: $limit
countRespectsLimit: $countRespectsLimit
) { ) {
count count
runs { runs {
@@ -6248,8 +5973,6 @@ export const GetRunsForHighlightsDocument = gql`
* filterInput: // value for 'filterInput' * filterInput: // value for 'filterInput'
* runIds: // value for 'runIds' * runIds: // value for 'runIds'
* runsOrdering: // value for 'runsOrdering' * runsOrdering: // value for 'runsOrdering'
* limit: // value for 'limit'
* countRespectsLimit: // value for 'countRespectsLimit'
* }, * },
* }); * });
*/ */
@@ -6302,105 +6025,6 @@ export type GetRunsForHighlightsQueryResult = Apollo.QueryResult<
GetRunsForHighlightsQuery, GetRunsForHighlightsQuery,
GetRunsForHighlightsQueryVariables 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` export const GetSerializedShotPathsDocument = gql`
query GetSerializedShotPaths($filterInput: FilterInput!) { query GetSerializedShotPaths($filterInput: FilterInput!) {
getShots(filterInput: $filterInput) { getShots(filterInput: $filterInput) {

View File

@@ -40,7 +40,6 @@ fragment VideoCardFields on VideoGQL {
id id
lastIntendedSegmentBound lastIntendedSegmentBound
isCompleted isCompleted
streamSegmentType
} }
tableSize tableSize
tags { tags {
@@ -59,20 +58,6 @@ fragment VideoCardFields on VideoGQL {
status status
} }
} }
reactions {
videoId
user {
id
username
profileImageUri
followers {
id
username
profileImageUri
}
}
reaction
}
} }
query GetVideoFeed( query GetVideoFeed(

View File

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

View File

@@ -2,45 +2,6 @@ query GetRunsForHighlights(
$filterInput: RunFilterInput! $filterInput: RunFilterInput!
$runIds: [Int!] = null $runIds: [Int!] = null
$runsOrdering: GetRunsOrdering $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( getRuns(
filterInput: $filterInput filterInput: $filterInput
@@ -56,10 +17,6 @@ query GetRunsWithTimestamps(
shots { shots {
videoId videoId
id id
createdAt
pocketingIntentionFeatures {
...PocketingIntentionFragment
}
} }
} }
runIds runIds

View File

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

View File

@@ -480,7 +480,6 @@ type VideoGQL {
homographyHistory: [HomographyInfoGQL!]! homographyHistory: [HomographyInfoGQL!]!
currentProcessing: VideoProcessingGQL currentProcessing: VideoProcessingGQL
reactions: [ReactionGQL!]! reactions: [ReactionGQL!]!
comments: [CommentGQL!]!
} }
type UploadStreamGQL { type UploadStreamGQL {
@@ -629,13 +628,6 @@ enum ReactionEnum {
HUNDRED HUNDRED
} }
type CommentGQL {
id: Int!
user: UserGQL!
message: String!
replies: [CommentGQL!]!
}
type RunFeaturesGQL { type RunFeaturesGQL {
runId: Int! runId: Int!
indexInRun: Int! indexInRun: Int!
@@ -826,13 +818,6 @@ type Mutation {
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! 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 {