Compare commits

..

1 Commits

Author SHA1 Message Date
58dba1d92a add fargoRating in user operations
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2024-10-28 15:59:06 -07:00
4 changed files with 81 additions and 235 deletions

View File

@ -7,7 +7,7 @@ readme = "README.md"
packages = [{include = "rbproto"}] packages = [{include = "rbproto"}]
[tool.poetry.dependencies] [tool.poetry.dependencies]
python = ">=3.10,<=3.13" python = ">=3.10,<3.12"
protobuf = "^4.25.3" protobuf = "^4.25.3"

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: UserRelationshipsResult;
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,13 +2226,6 @@ 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>;
@ -2246,6 +2239,13 @@ 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"];
@ -2508,11 +2508,11 @@ export type UserGql = {
activeVideoId?: Maybe<Scalars["Int"]["output"]>; activeVideoId?: Maybe<Scalars["Int"]["output"]>;
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: Scalars["String"]["output"];
followers?: Maybe<Array<UserGql>>; followers?: Maybe<Array<Scalars["Int"]["output"]>>;
following?: Maybe<Array<UserGql>>; following?: Maybe<Array<Scalars["Int"]["output"]>>;
id: Scalars["Int"]["output"]; id: Scalars["Int"]["output"];
isAdmin?: Maybe<Scalars["Boolean"]["output"]>; isAdmin: Scalars["Boolean"]["output"];
profileImageUri?: Maybe<Scalars["String"]["output"]>; profileImageUri?: Maybe<Scalars["String"]["output"]>;
updatedAt?: Maybe<Scalars["DateTime"]["output"]>; updatedAt?: Maybe<Scalars["DateTime"]["output"]>;
username: Scalars["String"]["output"]; username: Scalars["String"]["output"];
@ -2523,17 +2523,11 @@ export type UserPlayTimeGql = {
totalSeconds: Scalars["Float"]["output"]; totalSeconds: Scalars["Float"]["output"];
}; };
export type UserRelationship = { export type UsernamesAndFollowingResponse = {
__typename?: "UserRelationship"; __typename?: "UsernamesAndFollowingResponse";
toUser: UserGql; followers: Array<Scalars["Int"]["output"]>;
toUserFollows: Scalars["Boolean"]["output"]; following: Array<Scalars["Int"]["output"]>;
toUserIsFollowedBy: Scalars["Boolean"]["output"]; usernames: Array<Scalars["String"]["output"]>;
};
export type UserRelationshipsResult = {
__typename?: "UserRelationshipsResult";
inquiringUser: UserGql;
relationships: Array<UserRelationship>;
}; };
export type VideoFilterInput = { export type VideoFilterInput = {
@ -3095,7 +3089,7 @@ export type EditProfileImageUriMutation = {
editProfileImageUri: { editProfileImageUri: {
__typename?: "UserGQL"; __typename?: "UserGQL";
id: number; id: number;
firebaseUid?: string | null; firebaseUid: string;
username: string; username: string;
profileImageUri?: string | null; profileImageUri?: string | null;
createdAt?: any | null; createdAt?: any | null;
@ -3110,9 +3104,9 @@ export type GetLoggedInUserQuery = {
getLoggedInUser?: { getLoggedInUser?: {
__typename?: "UserGQL"; __typename?: "UserGQL";
id: number; id: number;
firebaseUid?: string | null; firebaseUid: string;
username: string; username: string;
isAdmin?: boolean | null; isAdmin: boolean;
profileImageUri?: string | null; profileImageUri?: string | null;
fargoRating?: number | null; fargoRating?: number | null;
activeVideoId?: number | null; activeVideoId?: number | null;
@ -3141,23 +3135,20 @@ export type GetUsernamesQuery = {
getUsernames: Array<string>; getUsernames: Array<string>;
}; };
export type GetUserRelationshipsMatchingQueryVariables = Exact<{ export type GetUsernamesAndFollowingQueryVariables = 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 GetUserRelationshipsMatchingQuery = { export type GetUsernamesAndFollowingQuery = {
__typename?: "Query"; __typename?: "Query";
getUserRelationshipsMatching: { getUsernamesAndFollowing: {
__typename?: "UserRelationshipsResult"; __typename?: "UsernamesAndFollowingResponse";
relationships: Array<{ followers: Array<number>;
__typename?: "UserRelationship"; following: Array<number>;
toUserFollows: boolean; usernames: Array<string>;
toUserIsFollowedBy: boolean;
toUser: { __typename?: "UserGQL"; username: string; id: number };
}>;
}; };
}; };
@ -3168,24 +3159,6 @@ export type GetUserTagsQuery = {
getUserTags: Array<{ __typename?: "TagGQL"; id: number; name: string }>; getUserTags: Array<{ __typename?: "TagGQL"; id: number; name: string }>;
}; };
export type FollowUserMutationVariables = Exact<{
followedUserId: Scalars["Int"]["input"];
}>;
export type FollowUserMutation = {
__typename?: "Mutation";
followUser: { __typename?: "UserGQL"; username: string };
};
export type UnfollowUserMutationVariables = Exact<{
followedUserId: Scalars["Int"]["input"];
}>;
export type UnfollowUserMutation = {
__typename?: "Mutation";
unfollowUser: { __typename?: "UserGQL"; username: string };
};
export type GetStreamMonitoringDetailsQueryVariables = Exact<{ export type GetStreamMonitoringDetailsQueryVariables = Exact<{
videoId: Scalars["Int"]["input"]; videoId: Scalars["Int"]["input"];
debuggingJson?: InputMaybe<Scalars["JSON"]["input"]>; debuggingJson?: InputMaybe<Scalars["JSON"]["input"]>;
@ -3304,7 +3277,7 @@ export type GetVideoDetailsQuery = {
owner?: { owner?: {
__typename?: "UserGQL"; __typename?: "UserGQL";
id: number; id: number;
firebaseUid?: string | null; firebaseUid: string;
username: string; username: string;
profileImageUri?: string | null; profileImageUri?: string | null;
} | null; } | null;
@ -5153,42 +5126,37 @@ export type GetUsernamesQueryResult = Apollo.QueryResult<
GetUsernamesQuery, GetUsernamesQuery,
GetUsernamesQueryVariables GetUsernamesQueryVariables
>; >;
export const GetUserRelationshipsMatchingDocument = gql` export const GetUsernamesAndFollowingDocument = gql`
query getUserRelationshipsMatching( query getUsernamesAndFollowing(
$userId: Int! $userId: Int!
$matchString: String! $matchString: String!
$limit: Int = null $limit: Int = null
$after: String = null $after: String = null
) { ) {
getUserRelationshipsMatching( getUsernamesAndFollowing(
userId: $userId userId: $userId
matchString: $matchString matchString: $matchString
limit: $limit limit: $limit
after: $after after: $after
) { ) {
relationships { followers
toUser { following
username usernames
id
}
toUserFollows
toUserIsFollowedBy
}
} }
} }
`; `;
/** /**
* __useGetUserRelationshipsMatchingQuery__ * __useGetUsernamesAndFollowingQuery__
* *
* To run a query within a React component, call `useGetUserRelationshipsMatchingQuery` and pass it any options that fit your needs. * To run a query within a React component, call `useGetUsernamesAndFollowingQuery` and pass it any options that fit your needs.
* When your component renders, `useGetUserRelationshipsMatchingQuery` returns an object from Apollo Client that contains loading, error, and data properties * When your component renders, `useGetUsernamesAndFollowingQuery` 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 } = useGetUserRelationshipsMatchingQuery({ * const { data, loading, error } = useGetUsernamesAndFollowingQuery({
* variables: { * variables: {
* userId: // value for 'userId' * userId: // value for 'userId'
* matchString: // value for 'matchString' * matchString: // value for 'matchString'
@ -5197,54 +5165,54 @@ export const GetUserRelationshipsMatchingDocument = gql`
* }, * },
* }); * });
*/ */
export function useGetUserRelationshipsMatchingQuery( export function useGetUsernamesAndFollowingQuery(
baseOptions: Apollo.QueryHookOptions< baseOptions: Apollo.QueryHookOptions<
GetUserRelationshipsMatchingQuery, GetUsernamesAndFollowingQuery,
GetUserRelationshipsMatchingQueryVariables GetUsernamesAndFollowingQueryVariables
>, >,
) { ) {
const options = { ...defaultOptions, ...baseOptions }; const options = { ...defaultOptions, ...baseOptions };
return Apollo.useQuery< return Apollo.useQuery<
GetUserRelationshipsMatchingQuery, GetUsernamesAndFollowingQuery,
GetUserRelationshipsMatchingQueryVariables GetUsernamesAndFollowingQueryVariables
>(GetUserRelationshipsMatchingDocument, options); >(GetUsernamesAndFollowingDocument, options);
} }
export function useGetUserRelationshipsMatchingLazyQuery( export function useGetUsernamesAndFollowingLazyQuery(
baseOptions?: Apollo.LazyQueryHookOptions< baseOptions?: Apollo.LazyQueryHookOptions<
GetUserRelationshipsMatchingQuery, GetUsernamesAndFollowingQuery,
GetUserRelationshipsMatchingQueryVariables GetUsernamesAndFollowingQueryVariables
>, >,
) { ) {
const options = { ...defaultOptions, ...baseOptions }; const options = { ...defaultOptions, ...baseOptions };
return Apollo.useLazyQuery< return Apollo.useLazyQuery<
GetUserRelationshipsMatchingQuery, GetUsernamesAndFollowingQuery,
GetUserRelationshipsMatchingQueryVariables GetUsernamesAndFollowingQueryVariables
>(GetUserRelationshipsMatchingDocument, options); >(GetUsernamesAndFollowingDocument, options);
} }
export function useGetUserRelationshipsMatchingSuspenseQuery( export function useGetUsernamesAndFollowingSuspenseQuery(
baseOptions?: Apollo.SuspenseQueryHookOptions< baseOptions?: Apollo.SuspenseQueryHookOptions<
GetUserRelationshipsMatchingQuery, GetUsernamesAndFollowingQuery,
GetUserRelationshipsMatchingQueryVariables GetUsernamesAndFollowingQueryVariables
>, >,
) { ) {
const options = { ...defaultOptions, ...baseOptions }; const options = { ...defaultOptions, ...baseOptions };
return Apollo.useSuspenseQuery< return Apollo.useSuspenseQuery<
GetUserRelationshipsMatchingQuery, GetUsernamesAndFollowingQuery,
GetUserRelationshipsMatchingQueryVariables GetUsernamesAndFollowingQueryVariables
>(GetUserRelationshipsMatchingDocument, options); >(GetUsernamesAndFollowingDocument, options);
} }
export type GetUserRelationshipsMatchingQueryHookResult = ReturnType< export type GetUsernamesAndFollowingQueryHookResult = ReturnType<
typeof useGetUserRelationshipsMatchingQuery typeof useGetUsernamesAndFollowingQuery
>; >;
export type GetUserRelationshipsMatchingLazyQueryHookResult = ReturnType< export type GetUsernamesAndFollowingLazyQueryHookResult = ReturnType<
typeof useGetUserRelationshipsMatchingLazyQuery typeof useGetUsernamesAndFollowingLazyQuery
>; >;
export type GetUserRelationshipsMatchingSuspenseQueryHookResult = ReturnType< export type GetUsernamesAndFollowingSuspenseQueryHookResult = ReturnType<
typeof useGetUserRelationshipsMatchingSuspenseQuery typeof useGetUsernamesAndFollowingSuspenseQuery
>; >;
export type GetUserRelationshipsMatchingQueryResult = Apollo.QueryResult< export type GetUsernamesAndFollowingQueryResult = Apollo.QueryResult<
GetUserRelationshipsMatchingQuery, GetUsernamesAndFollowingQuery,
GetUserRelationshipsMatchingQueryVariables GetUsernamesAndFollowingQueryVariables
>; >;
export const GetUserTagsDocument = gql` export const GetUserTagsDocument = gql`
query GetUserTags { query GetUserTags {
@ -5317,106 +5285,6 @@ export type GetUserTagsQueryResult = Apollo.QueryResult<
GetUserTagsQuery, GetUserTagsQuery,
GetUserTagsQueryVariables GetUserTagsQueryVariables
>; >;
export const FollowUserDocument = gql`
mutation followUser($followedUserId: Int!) {
followUser(followedUserId: $followedUserId) {
username
}
}
`;
export type FollowUserMutationFn = Apollo.MutationFunction<
FollowUserMutation,
FollowUserMutationVariables
>;
/**
* __useFollowUserMutation__
*
* To run a mutation, you first call `useFollowUserMutation` within a React component and pass it any options that fit your needs.
* When your component renders, `useFollowUserMutation` 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 [followUserMutation, { data, loading, error }] = useFollowUserMutation({
* variables: {
* followedUserId: // value for 'followedUserId'
* },
* });
*/
export function useFollowUserMutation(
baseOptions?: Apollo.MutationHookOptions<
FollowUserMutation,
FollowUserMutationVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useMutation<FollowUserMutation, FollowUserMutationVariables>(
FollowUserDocument,
options,
);
}
export type FollowUserMutationHookResult = ReturnType<
typeof useFollowUserMutation
>;
export type FollowUserMutationResult =
Apollo.MutationResult<FollowUserMutation>;
export type FollowUserMutationOptions = Apollo.BaseMutationOptions<
FollowUserMutation,
FollowUserMutationVariables
>;
export const UnfollowUserDocument = gql`
mutation unfollowUser($followedUserId: Int!) {
unfollowUser(followedUserId: $followedUserId) {
username
}
}
`;
export type UnfollowUserMutationFn = Apollo.MutationFunction<
UnfollowUserMutation,
UnfollowUserMutationVariables
>;
/**
* __useUnfollowUserMutation__
*
* To run a mutation, you first call `useUnfollowUserMutation` within a React component and pass it any options that fit your needs.
* When your component renders, `useUnfollowUserMutation` 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 [unfollowUserMutation, { data, loading, error }] = useUnfollowUserMutation({
* variables: {
* followedUserId: // value for 'followedUserId'
* },
* });
*/
export function useUnfollowUserMutation(
baseOptions?: Apollo.MutationHookOptions<
UnfollowUserMutation,
UnfollowUserMutationVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useMutation<
UnfollowUserMutation,
UnfollowUserMutationVariables
>(UnfollowUserDocument, options);
}
export type UnfollowUserMutationHookResult = ReturnType<
typeof useUnfollowUserMutation
>;
export type UnfollowUserMutationResult =
Apollo.MutationResult<UnfollowUserMutation>;
export type UnfollowUserMutationOptions = Apollo.BaseMutationOptions<
UnfollowUserMutation,
UnfollowUserMutationVariables
>;
export const GetStreamMonitoringDetailsDocument = gql` export const GetStreamMonitoringDetailsDocument = gql`
query GetStreamMonitoringDetails($videoId: Int!, $debuggingJson: JSON) { query GetStreamMonitoringDetails($videoId: Int!, $debuggingJson: JSON) {
getVideo(videoId: $videoId, debuggingJson: $debuggingJson) { getVideo(videoId: $videoId, debuggingJson: $debuggingJson) {

View File

@ -58,26 +58,21 @@ query getUsernames(
getUsernames(matchString: $matchString, limit: $limit, after: $after) getUsernames(matchString: $matchString, limit: $limit, after: $after)
} }
query getUserRelationshipsMatching( query getUsernamesAndFollowing(
$userId: Int! $userId: Int!
$matchString: String! $matchString: String!
$limit: Int = null $limit: Int = null
$after: String = null $after: String = null
) { ) {
getUserRelationshipsMatching( getUsernamesAndFollowing(
userId: $userId userId: $userId
matchString: $matchString matchString: $matchString
limit: $limit limit: $limit
after: $after after: $after
) { ) {
relationships { followers
toUser { following
username usernames
id
}
toUserFollows
toUserIsFollowedBy
}
} }
} }
@ -87,15 +82,3 @@ query GetUserTags {
name name
} }
} }
mutation followUser($followedUserId: Int!) {
followUser(followedUserId: $followedUserId) {
username
}
}
mutation unfollowUser($followedUserId: Int!) {
unfollowUser(followedUserId: $followedUserId) {
username
}
}

View File

@ -35,12 +35,12 @@ type Query {
limit: Int = null limit: Int = null
after: String = null after: String = null
): [String!]! ): [String!]!
getUserRelationshipsMatching( getUsernamesAndFollowing(
userId: Int! userId: Int!
matchString: String = null matchString: String = null
limit: Int = 100 limit: Int = 100
after: String = null after: String = null
): UserRelationshipsResult! ): UsernamesAndFollowingResponse!
getPlayTime(userId: Int!): UserPlayTimeGQL! getPlayTime(userId: Int!): UserPlayTimeGQL!
getUserVideos( getUserVideos(
userId: Int = null userId: Int = null
@ -341,16 +341,16 @@ type SerializedShotPathsGQL {
type UserGQL { type UserGQL {
id: Int! id: Int!
firebaseUid: String firebaseUid: String!
username: String! username: String!
isAdmin: Boolean isAdmin: Boolean!
fargoRating: Int fargoRating: Int
activeVideoId: Int activeVideoId: Int
profileImageUri: String profileImageUri: String
createdAt: DateTime createdAt: DateTime
updatedAt: DateTime updatedAt: DateTime
following: [UserGQL!] following: [Int!]
followers: [UserGQL!] followers: [Int!]
} }
type ShotAnnotationGQL { type ShotAnnotationGQL {
@ -554,15 +554,10 @@ input CreatedAfter @oneOf {
createdAt: DateTime createdAt: DateTime
} }
type UserRelationshipsResult { type UsernamesAndFollowingResponse {
inquiringUser: UserGQL! usernames: [String!]!
relationships: [UserRelationship!]! following: [Int!]!
} followers: [Int!]!
type UserRelationship {
toUser: UserGQL!
toUserFollows: Boolean!
toUserIsFollowedBy: Boolean!
} }
type UserPlayTimeGQL { type UserPlayTimeGQL {