Add mutation, logic needs to have better stateful solution #82

Merged
loewy merged 1 commits from loewy/add-annotations-to-operations into master 2024-10-22 18:38:26 -06:00
2 changed files with 153 additions and 0 deletions
Showing only changes of commit e686be5acd - Show all commits

View File

@ -2759,6 +2759,28 @@ export type GetShotAnnotationTypesQuery = {
}>; }>;
}; };
export type UpdateShotAnnotationsMutationVariables = Exact<{
shotId: Scalars["Int"]["input"];
annotations: Array<UpdateAnnotationInputGql> | 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<{ export type GetShotsWithVideoGqlQueryVariables = Exact<{
filterInput: FilterInput; filterInput: FilterInput;
limit?: InputMaybe<Scalars["Int"]["input"]>; limit?: InputMaybe<Scalars["Int"]["input"]>;
@ -2834,6 +2856,16 @@ export type GetShotsWithMetadataFilterResultQuery = {
__typename?: "SerializedShotPathsGQL"; __typename?: "SerializedShotPathsGQL";
b64EncodedBuffer?: string | null; b64EncodedBuffer?: string | null;
} | 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"; __typename?: "SerializedShotPathsGQL";
b64EncodedBuffer?: string | null; b64EncodedBuffer?: string | null;
} | 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"; __typename?: "SerializedShotPathsGQL";
b64EncodedBuffer?: string | null; b64EncodedBuffer?: string | null;
} | 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"; __typename?: "SerializedShotPathsGQL";
b64EncodedBuffer?: string | null; b64EncodedBuffer?: string | null;
} | null; } | null;
annotations: Array<{
__typename?: "ShotAnnotationGQL";
shotId: number;
notes: string;
type: { __typename?: "ShotAnnotationTypeGQL"; id: number; name: string };
}>;
}; };
export type GetProfileImageUploadLinkMutationVariables = Exact<{ export type GetProfileImageUploadLinkMutationVariables = Exact<{
@ -3708,6 +3762,14 @@ export const ShotWithAllFeaturesFragmentDoc = gql`
serializedShotPaths { serializedShotPaths {
b64EncodedBuffer b64EncodedBuffer
} }
annotations {
shotId
type {
id
name
}
notes
}
} }
`; `;
export const VideoStreamMetadataFragmentDoc = gql` export const VideoStreamMetadataFragmentDoc = gql`
@ -4272,6 +4334,70 @@ export type GetShotAnnotationTypesQueryResult = Apollo.QueryResult<
GetShotAnnotationTypesQuery, GetShotAnnotationTypesQuery,
GetShotAnnotationTypesQueryVariables 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<UpdateShotAnnotationsMutation>;
export type UpdateShotAnnotationsMutationOptions = Apollo.BaseMutationOptions<
UpdateShotAnnotationsMutation,
UpdateShotAnnotationsMutationVariables
>;
export const GetShotsWithVideoGqlDocument = gql` export const GetShotsWithVideoGqlDocument = gql`
query GetShotsWithVideoGql($filterInput: FilterInput!, $limit: Int) { query GetShotsWithVideoGql($filterInput: FilterInput!, $limit: Int) {
getShotsWithMetadata(filterInput: $filterInput, limit: $limit) { getShotsWithMetadata(filterInput: $filterInput, limit: $limit) {

View File

@ -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) { query GetShotsWithVideoGql($filterInput: FilterInput!, $limit: Int) {
getShotsWithMetadata(filterInput: $filterInput, limit: $limit) { getShotsWithMetadata(filterInput: $filterInput, limit: $limit) {
ids ids
@ -115,4 +134,12 @@ fragment ShotWithAllFeatures on ShotGQL {
serializedShotPaths { serializedShotPaths {
b64EncodedBuffer b64EncodedBuffer
} }
annotations {
shotId
type {
id
name
}
notes
}
} }