Replace GetUsernamesAndRelationships with GetUserRelationshipsMatching

This commit is contained in:
Ivan Malison 2024-10-25 02:45:07 -06:00
parent d942b91d17
commit 2398216bf2
3 changed files with 77 additions and 68 deletions

View File

@ -2166,10 +2166,10 @@ export type Query = {
getShotsByIds: Array<ShotGql>; getShotsByIds: Array<ShotGql>;
getShotsWithMetadata: GetShotsResult; getShotsWithMetadata: GetShotsResult;
getUser?: Maybe<UserGql>; getUser?: Maybe<UserGql>;
getUserRelationshipsMatching: Array<UserRelationship>;
getUserTags: Array<TagGql>; getUserTags: Array<TagGql>;
getUserVideos: VideoHistoryGql; getUserVideos: VideoHistoryGql;
getUsernames: Array<Scalars["String"]["output"]>; getUsernames: Array<Scalars["String"]["output"]>;
getUsernamesAndFollowing: UsernamesAndFollowingResponse;
getVideo: VideoGql; getVideo: VideoGql;
getVideoMakePercentageIntervals: Array<MakePercentageIntervalGql>; getVideoMakePercentageIntervals: Array<MakePercentageIntervalGql>;
getVideos: Array<VideoGql>; getVideos: Array<VideoGql>;
@ -2226,6 +2226,13 @@ export type QueryGetUserArgs = {
userId: Scalars["Int"]["input"]; userId: Scalars["Int"]["input"];
}; };
export type QueryGetUserRelationshipsMatchingArgs = {
after?: InputMaybe<Scalars["String"]["input"]>;
limit?: InputMaybe<Scalars["Int"]["input"]>;
matchString?: InputMaybe<Scalars["String"]["input"]>;
userId: Scalars["Int"]["input"];
};
export type QueryGetUserVideosArgs = { export type QueryGetUserVideosArgs = {
after?: InputMaybe<Scalars["String"]["input"]>; after?: InputMaybe<Scalars["String"]["input"]>;
filters?: InputMaybe<VideoFilterInput>; filters?: InputMaybe<VideoFilterInput>;
@ -2239,13 +2246,6 @@ export type QueryGetUsernamesArgs = {
matchString?: InputMaybe<Scalars["String"]["input"]>; matchString?: InputMaybe<Scalars["String"]["input"]>;
}; };
export type QueryGetUsernamesAndFollowingArgs = {
after?: InputMaybe<Scalars["String"]["input"]>;
limit?: InputMaybe<Scalars["Int"]["input"]>;
matchString?: InputMaybe<Scalars["String"]["input"]>;
userId: Scalars["Int"]["input"];
};
export type QueryGetVideoArgs = { export type QueryGetVideoArgs = {
debuggingJson?: InputMaybe<Scalars["JSON"]["input"]>; debuggingJson?: InputMaybe<Scalars["JSON"]["input"]>;
videoId: Scalars["Int"]["input"]; videoId: Scalars["Int"]["input"];
@ -2509,8 +2509,8 @@ export type UserGql = {
createdAt?: Maybe<Scalars["DateTime"]["output"]>; createdAt?: Maybe<Scalars["DateTime"]["output"]>;
fargoRating?: Maybe<Scalars["Int"]["output"]>; fargoRating?: Maybe<Scalars["Int"]["output"]>;
firebaseUid?: Maybe<Scalars["String"]["output"]>; firebaseUid?: Maybe<Scalars["String"]["output"]>;
followers?: Maybe<Array<Scalars["Int"]["output"]>>; followers?: Maybe<Array<UserGql>>;
following?: Maybe<Array<Scalars["Int"]["output"]>>; following?: Maybe<Array<UserGql>>;
id: Scalars["Int"]["output"]; id: Scalars["Int"]["output"];
isAdmin?: Maybe<Scalars["Boolean"]["output"]>; isAdmin?: Maybe<Scalars["Boolean"]["output"]>;
profileImageUri?: Maybe<Scalars["String"]["output"]>; profileImageUri?: Maybe<Scalars["String"]["output"]>;
@ -2523,11 +2523,11 @@ export type UserPlayTimeGql = {
totalSeconds: Scalars["Float"]["output"]; totalSeconds: Scalars["Float"]["output"];
}; };
export type UsernamesAndFollowingResponse = { export type UserRelationship = {
__typename?: "UsernamesAndFollowingResponse"; __typename?: "UserRelationship";
followers: Array<Scalars["Int"]["output"]>; following: Scalars["Boolean"]["output"];
following: Array<Scalars["Int"]["output"]>; follows: Scalars["Boolean"]["output"];
users: Array<UserGql>; user: UserGql;
}; };
export type VideoFilterInput = { export type VideoFilterInput = {
@ -3134,20 +3134,21 @@ export type GetUsernamesQuery = {
getUsernames: Array<string>; getUsernames: Array<string>;
}; };
export type GetUsernamesAndFollowingQueryVariables = Exact<{ export type GetUserRelationshipsMatchingQueryVariables = Exact<{
userId: Scalars["Int"]["input"]; userId: Scalars["Int"]["input"];
matchString: Scalars["String"]["input"]; matchString: Scalars["String"]["input"];
limit?: InputMaybe<Scalars["Int"]["input"]>; limit?: InputMaybe<Scalars["Int"]["input"]>;
after?: InputMaybe<Scalars["String"]["input"]>; after?: InputMaybe<Scalars["String"]["input"]>;
}>; }>;
export type GetUsernamesAndFollowingQuery = { export type GetUserRelationshipsMatchingQuery = {
__typename?: "Query"; __typename?: "Query";
getUsernamesAndFollowing: { getUserRelationshipsMatching: Array<{
__typename?: "UsernamesAndFollowingResponse"; __typename?: "UserRelationship";
followers: Array<number>; follows: boolean;
following: Array<number>; following: boolean;
}; user: { __typename?: "UserGQL"; username: string; id: number };
}>;
}; };
export type GetUserTagsQueryVariables = Exact<{ [key: string]: never }>; export type GetUserTagsQueryVariables = Exact<{ [key: string]: never }>;
@ -5123,36 +5124,40 @@ export type GetUsernamesQueryResult = Apollo.QueryResult<
GetUsernamesQuery, GetUsernamesQuery,
GetUsernamesQueryVariables GetUsernamesQueryVariables
>; >;
export const GetUsernamesAndFollowingDocument = gql` export const GetUserRelationshipsMatchingDocument = gql`
query getUsernamesAndFollowing( query getUserRelationshipsMatching(
$userId: Int! $userId: Int!
$matchString: String! $matchString: String!
$limit: Int = null $limit: Int = null
$after: String = null $after: String = null
) { ) {
getUsernamesAndFollowing( getUserRelationshipsMatching(
userId: $userId userId: $userId
matchString: $matchString matchString: $matchString
limit: $limit limit: $limit
after: $after after: $after
) { ) {
followers user {
username
id
}
follows
following following
} }
} }
`; `;
/** /**
* __useGetUsernamesAndFollowingQuery__ * __useGetUserRelationshipsMatchingQuery__
* *
* To run a query within a React component, call `useGetUsernamesAndFollowingQuery` and pass it any options that fit your needs. * To run a query within a React component, call `useGetUserRelationshipsMatchingQuery` and pass it any options that fit your needs.
* When your component renders, `useGetUsernamesAndFollowingQuery` returns an object from Apollo Client that contains loading, error, and data properties * When your component renders, `useGetUserRelationshipsMatchingQuery` returns an object from Apollo Client that contains loading, error, and data properties
* you can use to render your UI. * 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; * @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 * @example
* const { data, loading, error } = useGetUsernamesAndFollowingQuery({ * const { data, loading, error } = useGetUserRelationshipsMatchingQuery({
* variables: { * variables: {
* userId: // value for 'userId' * userId: // value for 'userId'
* matchString: // value for 'matchString' * matchString: // value for 'matchString'
@ -5161,54 +5166,54 @@ export const GetUsernamesAndFollowingDocument = gql`
* }, * },
* }); * });
*/ */
export function useGetUsernamesAndFollowingQuery( export function useGetUserRelationshipsMatchingQuery(
baseOptions: Apollo.QueryHookOptions< baseOptions: Apollo.QueryHookOptions<
GetUsernamesAndFollowingQuery, GetUserRelationshipsMatchingQuery,
GetUsernamesAndFollowingQueryVariables GetUserRelationshipsMatchingQueryVariables
>, >,
) { ) {
const options = { ...defaultOptions, ...baseOptions }; const options = { ...defaultOptions, ...baseOptions };
return Apollo.useQuery< return Apollo.useQuery<
GetUsernamesAndFollowingQuery, GetUserRelationshipsMatchingQuery,
GetUsernamesAndFollowingQueryVariables GetUserRelationshipsMatchingQueryVariables
>(GetUsernamesAndFollowingDocument, options); >(GetUserRelationshipsMatchingDocument, options);
} }
export function useGetUsernamesAndFollowingLazyQuery( export function useGetUserRelationshipsMatchingLazyQuery(
baseOptions?: Apollo.LazyQueryHookOptions< baseOptions?: Apollo.LazyQueryHookOptions<
GetUsernamesAndFollowingQuery, GetUserRelationshipsMatchingQuery,
GetUsernamesAndFollowingQueryVariables GetUserRelationshipsMatchingQueryVariables
>, >,
) { ) {
const options = { ...defaultOptions, ...baseOptions }; const options = { ...defaultOptions, ...baseOptions };
return Apollo.useLazyQuery< return Apollo.useLazyQuery<
GetUsernamesAndFollowingQuery, GetUserRelationshipsMatchingQuery,
GetUsernamesAndFollowingQueryVariables GetUserRelationshipsMatchingQueryVariables
>(GetUsernamesAndFollowingDocument, options); >(GetUserRelationshipsMatchingDocument, options);
} }
export function useGetUsernamesAndFollowingSuspenseQuery( export function useGetUserRelationshipsMatchingSuspenseQuery(
baseOptions?: Apollo.SuspenseQueryHookOptions< baseOptions?: Apollo.SuspenseQueryHookOptions<
GetUsernamesAndFollowingQuery, GetUserRelationshipsMatchingQuery,
GetUsernamesAndFollowingQueryVariables GetUserRelationshipsMatchingQueryVariables
>, >,
) { ) {
const options = { ...defaultOptions, ...baseOptions }; const options = { ...defaultOptions, ...baseOptions };
return Apollo.useSuspenseQuery< return Apollo.useSuspenseQuery<
GetUsernamesAndFollowingQuery, GetUserRelationshipsMatchingQuery,
GetUsernamesAndFollowingQueryVariables GetUserRelationshipsMatchingQueryVariables
>(GetUsernamesAndFollowingDocument, options); >(GetUserRelationshipsMatchingDocument, options);
} }
export type GetUsernamesAndFollowingQueryHookResult = ReturnType< export type GetUserRelationshipsMatchingQueryHookResult = ReturnType<
typeof useGetUsernamesAndFollowingQuery typeof useGetUserRelationshipsMatchingQuery
>; >;
export type GetUsernamesAndFollowingLazyQueryHookResult = ReturnType< export type GetUserRelationshipsMatchingLazyQueryHookResult = ReturnType<
typeof useGetUsernamesAndFollowingLazyQuery typeof useGetUserRelationshipsMatchingLazyQuery
>; >;
export type GetUsernamesAndFollowingSuspenseQueryHookResult = ReturnType< export type GetUserRelationshipsMatchingSuspenseQueryHookResult = ReturnType<
typeof useGetUsernamesAndFollowingSuspenseQuery typeof useGetUserRelationshipsMatchingSuspenseQuery
>; >;
export type GetUsernamesAndFollowingQueryResult = Apollo.QueryResult< export type GetUserRelationshipsMatchingQueryResult = Apollo.QueryResult<
GetUsernamesAndFollowingQuery, GetUserRelationshipsMatchingQuery,
GetUsernamesAndFollowingQueryVariables GetUserRelationshipsMatchingQueryVariables
>; >;
export const GetUserTagsDocument = gql` export const GetUserTagsDocument = gql`
query GetUserTags { query GetUserTags {

View File

@ -57,19 +57,23 @@ query getUsernames(
getUsernames(matchString: $matchString, limit: $limit, after: $after) getUsernames(matchString: $matchString, limit: $limit, after: $after)
} }
query getUsernamesAndFollowing( query getUserRelationshipsMatching(
$userId: Int! $userId: Int!
$matchString: String! $matchString: String!
$limit: Int = null $limit: Int = null
$after: String = null $after: String = null
) { ) {
getUsernamesAndFollowing( getUserRelationshipsMatching(
userId: $userId userId: $userId
matchString: $matchString matchString: $matchString
limit: $limit limit: $limit
after: $after after: $after
) { ) {
followers user {
username
id
}
follows
following following
} }
} }

View File

@ -35,12 +35,12 @@ type Query {
limit: Int = null limit: Int = null
after: String = null after: String = null
): [String!]! ): [String!]!
getUsernamesAndFollowing( getUserRelationshipsMatching(
userId: Int! userId: Int!
matchString: String = null matchString: String = null
limit: Int = 100 limit: Int = 100
after: String = null after: String = null
): UsernamesAndFollowingResponse! ): [UserRelationship!]!
getPlayTime(userId: Int!): UserPlayTimeGQL! getPlayTime(userId: Int!): UserPlayTimeGQL!
getUserVideos( getUserVideos(
userId: Int = null userId: Int = null
@ -349,8 +349,8 @@ type UserGQL {
profileImageUri: String profileImageUri: String
createdAt: DateTime createdAt: DateTime
updatedAt: DateTime updatedAt: DateTime
following: [Int!] following: [UserGQL!]
followers: [Int!] followers: [UserGQL!]
} }
type ShotAnnotationGQL { type ShotAnnotationGQL {
@ -554,10 +554,10 @@ input CreatedAfter @oneOf {
createdAt: DateTime createdAt: DateTime
} }
type UsernamesAndFollowingResponse { type UserRelationship {
users: [UserGQL!]! user: UserGQL!
following: [Int!]! follows: Boolean!
followers: [Int!]! following: Boolean!
} }
type UserPlayTimeGQL { type UserPlayTimeGQL {