From e686be5acd3eb64dbbc7f2abbde8d56b4c84e255 Mon Sep 17 00:00:00 2001 From: Loewy Date: Tue, 22 Oct 2024 16:58:35 -0700 Subject: [PATCH] add mutation, logic needs to have better stateful solution --- src/index.tsx | 126 +++++++++++++++++++++++++++++++++++++++ src/operations/shots.gql | 27 +++++++++ 2 files changed, 153 insertions(+) diff --git a/src/index.tsx b/src/index.tsx index 9895f4f..6e2297b 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -2759,6 +2759,28 @@ export type GetShotAnnotationTypesQuery = { }>; }; +export type UpdateShotAnnotationsMutationVariables = Exact<{ + shotId: Scalars["Int"]["input"]; + annotations: Array | UpdateAnnotationInputGql; +}>; + +export type UpdateShotAnnotationsMutation = { + __typename?: "Mutation"; + updateShotAnnotations: { + __typename?: "UpdateShotAnnotationReturn"; + value: + | { __typename?: "SuccessfulUpdate"; value: boolean } + | { + __typename?: "UpdateShotAnnotationErrors"; + error?: { + __typename?: "DoesNotOwnShotErr"; + shotId: number; + msg?: string | null; + } | null; + }; + }; +}; + export type GetShotsWithVideoGqlQueryVariables = Exact<{ filterInput: FilterInput; limit?: InputMaybe; @@ -2834,6 +2856,16 @@ export type GetShotsWithMetadataFilterResultQuery = { __typename?: "SerializedShotPathsGQL"; b64EncodedBuffer?: string | null; } | null; + annotations: Array<{ + __typename?: "ShotAnnotationGQL"; + shotId: number; + notes: string; + type: { + __typename?: "ShotAnnotationTypeGQL"; + id: number; + name: string; + }; + }>; }>; }; }; @@ -2890,6 +2922,16 @@ export type GetShotsWithMetadataQuery = { __typename?: "SerializedShotPathsGQL"; b64EncodedBuffer?: string | null; } | null; + annotations: Array<{ + __typename?: "ShotAnnotationGQL"; + shotId: number; + notes: string; + type: { + __typename?: "ShotAnnotationTypeGQL"; + id: number; + name: string; + }; + }>; }>; }; }; @@ -2939,6 +2981,12 @@ export type GetShotsByIdsQuery = { __typename?: "SerializedShotPathsGQL"; b64EncodedBuffer?: string | null; } | null; + annotations: Array<{ + __typename?: "ShotAnnotationGQL"; + shotId: number; + notes: string; + type: { __typename?: "ShotAnnotationTypeGQL"; id: number; name: string }; + }>; }>; }; @@ -2981,6 +3029,12 @@ export type ShotWithAllFeaturesFragment = { __typename?: "SerializedShotPathsGQL"; b64EncodedBuffer?: string | null; } | null; + annotations: Array<{ + __typename?: "ShotAnnotationGQL"; + shotId: number; + notes: string; + type: { __typename?: "ShotAnnotationTypeGQL"; id: number; name: string }; + }>; }; export type GetProfileImageUploadLinkMutationVariables = Exact<{ @@ -3708,6 +3762,14 @@ export const ShotWithAllFeaturesFragmentDoc = gql` serializedShotPaths { b64EncodedBuffer } + annotations { + shotId + type { + id + name + } + notes + } } `; export const VideoStreamMetadataFragmentDoc = gql` @@ -4272,6 +4334,70 @@ export type GetShotAnnotationTypesQueryResult = Apollo.QueryResult< GetShotAnnotationTypesQuery, GetShotAnnotationTypesQueryVariables >; +export const UpdateShotAnnotationsDocument = gql` + mutation UpdateShotAnnotations( + $shotId: Int! + $annotations: [UpdateAnnotationInputGQL!]! + ) { + updateShotAnnotations(shotId: $shotId, annotations: $annotations) { + value { + ... on SuccessfulUpdate { + value + } + ... on UpdateShotAnnotationErrors { + error { + shotId + msg + } + } + } + } + } +`; +export type UpdateShotAnnotationsMutationFn = Apollo.MutationFunction< + UpdateShotAnnotationsMutation, + UpdateShotAnnotationsMutationVariables +>; + +/** + * __useUpdateShotAnnotationsMutation__ + * + * To run a mutation, you first call `useUpdateShotAnnotationsMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useUpdateShotAnnotationsMutation` 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 [updateShotAnnotationsMutation, { data, loading, error }] = useUpdateShotAnnotationsMutation({ + * variables: { + * shotId: // value for 'shotId' + * annotations: // value for 'annotations' + * }, + * }); + */ +export function useUpdateShotAnnotationsMutation( + baseOptions?: Apollo.MutationHookOptions< + UpdateShotAnnotationsMutation, + UpdateShotAnnotationsMutationVariables + >, +) { + const options = { ...defaultOptions, ...baseOptions }; + return Apollo.useMutation< + UpdateShotAnnotationsMutation, + UpdateShotAnnotationsMutationVariables + >(UpdateShotAnnotationsDocument, options); +} +export type UpdateShotAnnotationsMutationHookResult = ReturnType< + typeof useUpdateShotAnnotationsMutation +>; +export type UpdateShotAnnotationsMutationResult = + Apollo.MutationResult; +export type UpdateShotAnnotationsMutationOptions = Apollo.BaseMutationOptions< + UpdateShotAnnotationsMutation, + UpdateShotAnnotationsMutationVariables +>; export const GetShotsWithVideoGqlDocument = gql` query GetShotsWithVideoGql($filterInput: FilterInput!, $limit: Int) { getShotsWithMetadata(filterInput: $filterInput, limit: $limit) { diff --git a/src/operations/shots.gql b/src/operations/shots.gql index 221fc6b..1d97898 100644 --- a/src/operations/shots.gql +++ b/src/operations/shots.gql @@ -17,6 +17,25 @@ query GetShotAnnotationTypes { } } +mutation UpdateShotAnnotations( + $shotId: Int! + $annotations: [UpdateAnnotationInputGQL!]! +) { + updateShotAnnotations(shotId: $shotId, annotations: $annotations) { + value { + ... on SuccessfulUpdate { + value + } + ... on UpdateShotAnnotationErrors { + error { + shotId + msg + } + } + } + } +} + query GetShotsWithVideoGql($filterInput: FilterInput!, $limit: Int) { getShotsWithMetadata(filterInput: $filterInput, limit: $limit) { ids @@ -115,4 +134,12 @@ fragment ShotWithAllFeatures on ShotGQL { serializedShotPaths { b64EncodedBuffer } + annotations { + shotId + type { + id + name + } + notes + } }