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 306 additions and 4 deletions

View File

@ -245,6 +245,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -288,6 +289,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -331,6 +333,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -374,6 +377,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -417,6 +421,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -460,6 +465,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -503,6 +509,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -546,6 +553,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -589,6 +597,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -632,6 +641,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -675,6 +685,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -718,6 +729,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -761,6 +773,7 @@ export type FilterInput =
falsePositiveScore: FloatRangeFilter;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -804,6 +817,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating: FloatRangeFilter;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -847,6 +861,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType: Array<PocketEnum>;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -890,6 +905,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;
@ -933,6 +993,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft: Array<Scalars["Boolean"]["input"]>;
isLeftMiss?: never;
@ -976,6 +1037,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss: Array<Scalars["Boolean"]["input"]>;
@ -1019,6 +1081,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1062,6 +1125,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1105,6 +1169,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1148,6 +1213,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1191,6 +1257,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1234,6 +1301,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1277,6 +1345,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1320,6 +1389,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1363,6 +1433,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1406,6 +1477,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1449,6 +1521,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1492,6 +1565,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1535,6 +1609,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1578,6 +1653,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1621,6 +1697,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1664,6 +1741,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1707,6 +1785,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1750,6 +1829,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1793,6 +1873,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1836,6 +1917,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1879,6 +1961,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1922,6 +2005,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -1965,6 +2049,7 @@ export type FilterInput =
falsePositiveScore?: never;
fargoRating?: never;
intendedPocketType?: never;
isBreakHeuristic?: never;
isDirect?: never;
isLeft?: never;
isLeftMiss?: never;
@ -2167,6 +2252,7 @@ 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"];
@ -2254,6 +2340,11 @@ 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"]>;
};
@ -2510,6 +2601,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>;
@ -2946,6 +3053,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"]>;
@ -3133,6 +3241,17 @@ export type GetFeedQuery = {
status: ProcessingStatusEnum;
}>;
} | null;
reactions: Array<{
__typename?: "ReactionGQL";
videoId: number;
reaction: ReactionEnum;
user: {
__typename?: "UserGQL";
id: number;
username: string;
profileImageUri?: string | null;
};
}>;
}>;
pageInfo: {
__typename?: "PageInfoGQL";
@ -3186,6 +3305,17 @@ export type VideoCardFieldsFragment = {
status: ProcessingStatusEnum;
}>;
} | null;
reactions: Array<{
__typename?: "ReactionGQL";
videoId: number;
reaction: ReactionEnum;
user: {
__typename?: "UserGQL";
id: number;
username: string;
profileImageUri?: string | null;
};
}>;
};
export type GetVideoFeedQueryVariables = Exact<{
@ -3248,6 +3378,17 @@ export type GetVideoFeedQuery = {
status: ProcessingStatusEnum;
}>;
} | null;
reactions: Array<{
__typename?: "ReactionGQL";
videoId: number;
reaction: ReactionEnum;
user: {
__typename?: "UserGQL";
id: number;
username: string;
profileImageUri?: string | null;
};
}>;
}>;
pageInfo: {
__typename?: "PageInfoGQL";
@ -3451,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<{
filterInput: RunFilterInput;
runIds?: InputMaybe<Array<Scalars["Int"]["input"]> | Scalars["Int"]["input"]>;
@ -3901,6 +4052,16 @@ export type RetireTagsMutation = {
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"]>;
}>;
@ -4919,6 +5080,15 @@ export const VideoCardFieldsFragmentDoc = gql`
status
}
}
reactions {
videoId
user {
id
username
profileImageUri
}
reaction
}
}
`;
export const MedalFieldsFragmentDoc = gql`
@ -5844,6 +6014,55 @@ export type GetMedalsQueryResult = Apollo.QueryResult<
GetMedalsQuery,
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`
query GetRunsForHighlights(
$filterInput: RunFilterInput!
@ -6699,6 +6918,55 @@ 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) {

View File

@ -58,6 +58,15 @@ fragment VideoCardFields on VideoGQL {
status
}
}
reactions {
videoId
user {
id
username
profileImageUri
}
reaction
}
}
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!]!) {
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!]
isRightMiss: [Boolean!]
isDirect: [Boolean!]
isBreakHeuristic: [Boolean!]
tableSize: FloatRangeFilter
bankAngle: FloatRangeFilter
bankDistance: FloatRangeFilter
@ -478,6 +479,7 @@ type VideoGQL {
currentHomography: HomographyInfoGQL
homographyHistory: [HomographyInfoGQL!]!
currentProcessing: VideoProcessingGQL
reactions: [ReactionGQL!]!
comments: [CommentGQL!]!
}
@ -612,6 +614,14 @@ type VideoProcessingStatusGQL {
updatedAt: DateTime
}
type ReactionGQL {
videoId: Int!
user: UserGQL!
reaction: ReactionEnum!
createdAt: DateTime
updatedAt: DateTime
}
type CommentGQL {
id: Int!
user: UserGQL!
@ -621,6 +631,13 @@ type CommentGQL {
updatedAt: DateTime
}
enum ReactionEnum {
LIKE
HEART
BULLSEYE
HUNDRED
}
type RunFeaturesGQL {
runId: Int!
indexInRun: Int!
@ -810,6 +827,7 @@ type Mutation {
editUploadStream(videoId: Int!, videoMetadata: VideoMetadataInput!): Boolean!
deleteVideo(videoId: Int!): Boolean!
deleteTags(videoId: Int!, tagsToDelete: [VideoTagInput!]!): Boolean!
reactToVideo(videoId: Int!, reaction: ReactionEnum): Boolean!
commentOnVideo(
videoId: Int!
message: String!
@ -851,7 +869,7 @@ type AddShotAnnotationReturn {
}
union SuccessfulAddAddShotAnnotationErrors =
SuccessfulAdd
| SuccessfulAdd
| AddShotAnnotationErrors
type SuccessfulAdd {
@ -863,7 +881,7 @@ type AddShotAnnotationErrors {
}
union DoesNotOwnShotErrOtherErrorNeedsNote =
DoesNotOwnShotErr
| DoesNotOwnShotErr
| OtherErrorNeedsNote
type OtherErrorNeedsNote {
@ -885,7 +903,7 @@ type GetProfileUploadLinkReturn {
}
union UploadLinkGetProfileUploadLinkErrors =
UploadLink
| UploadLink
| GetProfileUploadLinkErrors
type UploadLink {
@ -954,7 +972,7 @@ type GetUploadLinkErrors {
}
union MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailedErrNoInitForChunkedUploadErrTooManyProfileImageUploadsErrInitUploadAlreadyCompletedErrTooManyInitUploadsErr =
MustHaveSetForUploadLinkErr
| MustHaveSetForUploadLinkErr
| SegmentAlreadyUploadedErr
| ProcessingFailedErr
| NoInitForChunkedUploadErr