Compare commits

..

18 Commits

Author SHA1 Message Date
94e4e55558 Merge pull request 'Medals' (#135) from volodymyr/medals into master
Reviewed-on: #135
2024-11-15 17:52:14 -07:00
2536f5db6b add nickname to operation, remove currently unsupported fields from request
All checks were successful
Tests / Tests (pull_request) Successful in 15s
2024-11-15 16:51:17 -08:00
ffd0814a98 remove dasystreak 2024-11-15 16:44:42 -08:00
55bfe42484 Medals 2024-11-15 16:44:42 -08:00
dabb0d1d9c Merge pull request 'Remove unimplemented dayStreak and add support for nickname' (#136) from mk/add-nickname-to-medals into master
Reviewed-on: #136
2024-11-15 12:50:49 -07:00
a538c1d81c Remove unimplemented dayStreak and add support for nickname
All checks were successful
Tests / Tests (pull_request) Successful in 7s
2024-11-15 11:50:11 -08:00
872bce3adb Merge pull request 'Add ID to user processing' (#134) from kat/add-id-processing into master
Reviewed-on: #134
2024-11-14 00:20:05 -07:00
12798e368c Merge pull request 'Get user videos' (#132) from volodymyr/get-user-videos into master
Reviewed-on: #132
Reviewed-by: Ivan Malison <ivanmalison@gmail.com>
2024-11-13 15:14:48 -07:00
a3d6e6e19e Merge branch 'master' into volodymyr/get-user-videos
All checks were successful
Tests / Tests (pull_request) Successful in 13s
2024-11-13 15:14:30 -07:00
f7a6e393e7 Merge pull request 'Add excludeVideosWithNoShots filter' (#133) from mk/exclude-no-shots-filter into master
Reviewed-on: #133
2024-11-13 15:13:33 -07:00
ee11e506ed Add excludeVideosWithNoShots filter
All checks were successful
Tests / Tests (pull_request) Successful in 16s
2024-11-13 14:12:57 -08:00
90ec47848b Get user videos
All checks were successful
Tests / Tests (pull_request) Successful in 12s
2024-11-13 21:33:50 +01:00
21acb5219d Merge pull request 'Change includeCallersVideos default to True' (#131) from mk/change-caller-video-default into master
Reviewed-on: #131
2024-11-13 12:52:07 -07:00
087d511efc Change includeCallersVideos default to True
All checks were successful
Tests / Tests (pull_request) Successful in 14s
2024-11-13 11:51:29 -08:00
7cc0dca821 Merge pull request 'Add includeCallersVideos to getFeedVideos' (#130) from mk/make-feed-get-only-theirs into master
Reviewed-on: #130
2024-11-13 11:11:22 -07:00
f826121aa3 Add includeCallersVideos to getFeedVideos
All checks were successful
Tests / Tests (pull_request) Successful in 13s
2024-11-13 10:10:11 -08:00
2aadb8b49b Merge pull request 'Add createdAt filterInput to GetUserPlayTime' (#129) from loewy/update-get-play-time-operation into master
Reviewed-on: #129
2024-11-12 14:28:36 -07:00
5468b7ccda add createdAt dateRangeFilter
All checks were successful
Tests / Tests (pull_request) Successful in 8s
2024-11-12 13:00:18 -08:00
5 changed files with 395 additions and 81 deletions

View File

@@ -1979,6 +1979,7 @@ export type MakePercentageIntervalGql = {
export type MedalGql = { export type MedalGql = {
__typename?: "MedalGQL"; __typename?: "MedalGQL";
count: Scalars["Int"]["output"]; count: Scalars["Int"]["output"];
nickname?: Maybe<Scalars["String"]["output"]>;
}; };
export type MedalScope = export type MedalScope =
@@ -2210,6 +2211,7 @@ export type QueryGetBucketSetArgs = {
export type QueryGetFeedVideosArgs = { export type QueryGetFeedVideosArgs = {
after?: InputMaybe<Scalars["String"]["input"]>; after?: InputMaybe<Scalars["String"]["input"]>;
filters?: InputMaybe<VideoFilterInput>; filters?: InputMaybe<VideoFilterInput>;
includeCallersVideos?: InputMaybe<Scalars["Boolean"]["input"]>;
limit?: Scalars["Int"]["input"]; limit?: Scalars["Int"]["input"];
}; };
@@ -2298,17 +2300,6 @@ export type QueryWaitForArgs = {
export type RequestedMedalsGql = { export type RequestedMedalsGql = {
__typename?: "RequestedMedalsGQL"; __typename?: "RequestedMedalsGQL";
dayStreak2?: Maybe<MedalGql>;
dayStreak3?: Maybe<MedalGql>;
dayStreak4?: Maybe<MedalGql>;
dayStreak5?: Maybe<MedalGql>;
dayStreak6?: Maybe<MedalGql>;
dayStreak7?: Maybe<MedalGql>;
dayStreak14?: Maybe<MedalGql>;
dayStreak21?: Maybe<MedalGql>;
dayStreak30?: Maybe<MedalGql>;
dayStreak60?: Maybe<MedalGql>;
dayStreak90?: Maybe<MedalGql>;
distanceOver66?: Maybe<MedalGql>; distanceOver66?: Maybe<MedalGql>;
distanceOver78?: Maybe<MedalGql>; distanceOver78?: Maybe<MedalGql>;
distanceOver90?: Maybe<MedalGql>; distanceOver90?: Maybe<MedalGql>;
@@ -2609,6 +2600,7 @@ export type UserRelationshipsResult = {
export type VideoFilterInput = { export type VideoFilterInput = {
createdAt?: InputMaybe<DateRangeFilter>; createdAt?: InputMaybe<DateRangeFilter>;
excludeVideosWithNoShots?: InputMaybe<Scalars["Boolean"]["input"]>;
isStreamCompleted?: InputMaybe<Scalars["Boolean"]["input"]>; isStreamCompleted?: InputMaybe<Scalars["Boolean"]["input"]>;
requireCursorCompletion?: Scalars["Boolean"]["input"]; requireCursorCompletion?: Scalars["Boolean"]["input"];
}; };
@@ -2778,9 +2770,15 @@ export type GetFeedQuery = {
updatedAt?: any | null; updatedAt?: any | null;
startTime?: any | null; startTime?: any | null;
endTime?: any | null; endTime?: any | null;
private: boolean;
elapsedTime?: number | null; elapsedTime?: number | null;
tableSize: number; tableSize: number;
owner?: { __typename?: "UserGQL"; username: string } | null; owner?: {
__typename?: "UserGQL";
id: number;
username: string;
profileImageUri?: string | null;
} | null;
stream?: { stream?: {
__typename?: "UploadStreamGQL"; __typename?: "UploadStreamGQL";
id: string; id: string;
@@ -2791,6 +2789,19 @@ export type GetFeedQuery = {
name: string; name: string;
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>; tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
}>; }>;
currentProcessing?: {
__typename?: "VideoProcessingGQL";
id: number;
status: ProcessingStatusEnum;
errors: Array<{
__typename?: "VideoProcessingErrorGQL";
message: string;
}>;
statuses: Array<{
__typename?: "VideoProcessingStatusGQL";
status: ProcessingStatusEnum;
}>;
} | null;
}>; }>;
pageInfo: { pageInfo: {
__typename?: "PageInfoGQL"; __typename?: "PageInfoGQL";
@@ -2847,6 +2858,7 @@ export type GetVideoFeedQueryVariables = Exact<{
limit?: Scalars["Int"]["input"]; limit?: Scalars["Int"]["input"];
after?: InputMaybe<Scalars["String"]["input"]>; after?: InputMaybe<Scalars["String"]["input"]>;
filters?: InputMaybe<VideoFilterInput>; filters?: InputMaybe<VideoFilterInput>;
includeCallersVideos?: InputMaybe<Scalars["Boolean"]["input"]>;
}>; }>;
export type GetVideoFeedQuery = { export type GetVideoFeedQuery = {
@@ -2920,6 +2932,118 @@ export type GetVideoMakePercentageIntervalsQuery = {
}>; }>;
}; };
export type GetMedalsQueryVariables = Exact<{
scope: MedalScope;
userId?: InputMaybe<Scalars["Int"]["input"]>;
}>;
export type GetMedalsQuery = {
__typename?: "Query";
getMedals: {
__typename?: "RequestedMedalsGQL";
distanceOver66?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
distanceOver78?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
distanceOver90?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
runLength3?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
runLength5?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
runLength8?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
runLength10?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
runLength15?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
runLength20?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
runLength25?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
runLength30?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
runLength40?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
runLength50?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
totalMakes25?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
totalMakes50?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
totalMakes75?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
totalMakes100?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
totalMakes200?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
totalMakes300?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
totalMakes400?: {
__typename?: "MedalGQL";
count: number;
nickname?: string | null;
} | null;
};
};
export type GetSerializedShotPathsQueryVariables = Exact<{ export type GetSerializedShotPathsQueryVariables = Exact<{
filterInput: FilterInput; filterInput: FilterInput;
}>; }>;
@@ -3322,6 +3446,7 @@ export type GetLoggedInUserQuery = {
export type GetUserPlayTimeQueryVariables = Exact<{ export type GetUserPlayTimeQueryVariables = Exact<{
userId: Scalars["Int"]["input"]; userId: Scalars["Int"]["input"];
filters?: InputMaybe<VideoFilterInput>;
}>; }>;
export type GetUserPlayTimeQuery = { export type GetUserPlayTimeQuery = {
@@ -4498,32 +4623,7 @@ export const GetFeedDocument = gql`
) { ) {
getUserVideos(limit: $limit, after: $after, filters: $filters) { getUserVideos(limit: $limit, after: $after, filters: $filters) {
videos { videos {
id ...VideoCardFields
owner {
username
}
name
screenshotUri
totalShotsMade
totalShots
makePercentage
createdAt
updatedAt
startTime
endTime
elapsedTime
screenshotUri
stream {
id
isCompleted
}
tableSize
tags {
tagClasses {
name
}
name
}
} }
pageInfo { pageInfo {
hasNextPage hasNextPage
@@ -4531,6 +4631,7 @@ export const GetFeedDocument = gql`
} }
} }
} }
${VideoCardFieldsFragmentDoc}
`; `;
/** /**
@@ -4598,8 +4699,14 @@ export const GetVideoFeedDocument = gql`
$limit: Int! = 5 $limit: Int! = 5
$after: String = null $after: String = null
$filters: VideoFilterInput = null $filters: VideoFilterInput = null
$includeCallersVideos: Boolean = null
) { ) {
getFeedVideos(limit: $limit, after: $after, filters: $filters) { getFeedVideos(
limit: $limit
after: $after
filters: $filters
includeCallersVideos: $includeCallersVideos
) {
videos { videos {
...VideoCardFields ...VideoCardFields
} }
@@ -4627,6 +4734,7 @@ export const GetVideoFeedDocument = gql`
* limit: // value for 'limit' * limit: // value for 'limit'
* after: // value for 'after' * after: // value for 'after'
* filters: // value for 'filters' * filters: // value for 'filters'
* includeCallersVideos: // value for 'includeCallersVideos'
* }, * },
* }); * });
*/ */
@@ -4760,6 +4868,154 @@ export type GetVideoMakePercentageIntervalsQueryResult = Apollo.QueryResult<
GetVideoMakePercentageIntervalsQuery, GetVideoMakePercentageIntervalsQuery,
GetVideoMakePercentageIntervalsQueryVariables GetVideoMakePercentageIntervalsQueryVariables
>; >;
export const GetMedalsDocument = gql`
query getMedals($scope: MedalScope!, $userId: Int) {
getMedals(scope: $scope, userId: $userId) {
distanceOver66 {
count
nickname
}
distanceOver78 {
count
nickname
}
distanceOver90 {
count
nickname
}
runLength3 {
count
nickname
}
runLength5 {
count
nickname
}
runLength8 {
count
nickname
}
runLength10 {
count
nickname
}
runLength15 {
count
nickname
}
runLength20 {
count
nickname
}
runLength25 {
count
nickname
}
runLength30 {
count
nickname
}
runLength40 {
count
nickname
}
runLength50 {
count
nickname
}
totalMakes25 {
count
nickname
}
totalMakes50 {
count
nickname
}
totalMakes75 {
count
nickname
}
totalMakes100 {
count
nickname
}
totalMakes200 {
count
nickname
}
totalMakes300 {
count
nickname
}
totalMakes400 {
count
nickname
}
}
}
`;
/**
* __useGetMedalsQuery__
*
* To run a query within a React component, call `useGetMedalsQuery` and pass it any options that fit your needs.
* When your component renders, `useGetMedalsQuery` returns an object from Apollo Client that contains loading, error, and data properties
* 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;
*
* @example
* const { data, loading, error } = useGetMedalsQuery({
* variables: {
* scope: // value for 'scope'
* userId: // value for 'userId'
* },
* });
*/
export function useGetMedalsQuery(
baseOptions: Apollo.QueryHookOptions<GetMedalsQuery, GetMedalsQueryVariables>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useQuery<GetMedalsQuery, GetMedalsQueryVariables>(
GetMedalsDocument,
options,
);
}
export function useGetMedalsLazyQuery(
baseOptions?: Apollo.LazyQueryHookOptions<
GetMedalsQuery,
GetMedalsQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useLazyQuery<GetMedalsQuery, GetMedalsQueryVariables>(
GetMedalsDocument,
options,
);
}
export function useGetMedalsSuspenseQuery(
baseOptions?: Apollo.SuspenseQueryHookOptions<
GetMedalsQuery,
GetMedalsQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useSuspenseQuery<GetMedalsQuery, GetMedalsQueryVariables>(
GetMedalsDocument,
options,
);
}
export type GetMedalsQueryHookResult = ReturnType<typeof useGetMedalsQuery>;
export type GetMedalsLazyQueryHookResult = ReturnType<
typeof useGetMedalsLazyQuery
>;
export type GetMedalsSuspenseQueryHookResult = ReturnType<
typeof useGetMedalsSuspenseQuery
>;
export type GetMedalsQueryResult = Apollo.QueryResult<
GetMedalsQuery,
GetMedalsQueryVariables
>;
export const GetSerializedShotPathsDocument = gql` export const GetSerializedShotPathsDocument = gql`
query GetSerializedShotPaths($filterInput: FilterInput!) { query GetSerializedShotPaths($filterInput: FilterInput!) {
getShots(filterInput: $filterInput) { getShots(filterInput: $filterInput) {
@@ -5621,8 +5877,8 @@ export type GetLoggedInUserQueryResult = Apollo.QueryResult<
GetLoggedInUserQueryVariables GetLoggedInUserQueryVariables
>; >;
export const GetUserPlayTimeDocument = gql` export const GetUserPlayTimeDocument = gql`
query GetUserPlayTime($userId: Int!) { query GetUserPlayTime($userId: Int!, $filters: VideoFilterInput) {
getPlayTime(userId: $userId) { getPlayTime(userId: $userId, filters: $filters) {
totalSeconds totalSeconds
} }
} }
@@ -5641,6 +5897,7 @@ export const GetUserPlayTimeDocument = gql`
* const { data, loading, error } = useGetUserPlayTimeQuery({ * const { data, loading, error } = useGetUserPlayTimeQuery({
* variables: { * variables: {
* userId: // value for 'userId' * userId: // value for 'userId'
* filters: // value for 'filters'
* }, * },
* }); * });
*/ */

View File

@@ -6,32 +6,7 @@ query GetFeed(
) { ) {
getUserVideos(limit: $limit, after: $after, filters: $filters) { getUserVideos(limit: $limit, after: $after, filters: $filters) {
videos { videos {
id ...VideoCardFields
owner {
username
}
name
screenshotUri
totalShotsMade
totalShots
makePercentage
createdAt
updatedAt
startTime
endTime
elapsedTime
screenshotUri
stream {
id
isCompleted
}
tableSize
tags {
tagClasses {
name
}
name
}
} }
pageInfo { pageInfo {
hasNextPage hasNextPage
@@ -86,8 +61,14 @@ query GetVideoFeed(
$limit: Int! = 5 $limit: Int! = 5
$after: String = null $after: String = null
$filters: VideoFilterInput = null $filters: VideoFilterInput = null
$includeCallersVideos: Boolean = null
) { ) {
getFeedVideos(limit: $limit, after: $after, filters: $filters) { getFeedVideos(
limit: $limit
after: $after
filters: $filters
includeCallersVideos: $includeCallersVideos
) {
videos { videos {
...VideoCardFields ...VideoCardFields
} }

84
src/operations/medals.gql Normal file
View File

@@ -0,0 +1,84 @@
query getMedals($scope: MedalScope!, $userId: Int) {
getMedals(scope: $scope, userId: $userId) {
distanceOver66 {
count
nickname
}
distanceOver78 {
count
nickname
}
distanceOver90 {
count
nickname
}
runLength3 {
count
nickname
}
runLength5 {
count
nickname
}
runLength8 {
count
nickname
}
runLength10 {
count
nickname
}
runLength15 {
count
nickname
}
runLength20 {
count
nickname
}
runLength25 {
count
nickname
}
runLength30 {
count
nickname
}
runLength40 {
count
nickname
}
runLength50 {
count
nickname
}
totalMakes25 {
count
nickname
}
totalMakes50 {
count
nickname
}
totalMakes75 {
count
nickname
}
totalMakes100 {
count
nickname
}
totalMakes200 {
count
nickname
}
totalMakes300 {
count
nickname
}
totalMakes400 {
count
nickname
}
}
}

View File

@@ -45,8 +45,8 @@ query getLoggedInUser {
} }
} }
query GetUserPlayTime($userId: Int!) { query GetUserPlayTime($userId: Int!, $filters: VideoFilterInput) {
getPlayTime(userId: $userId) { getPlayTime(userId: $userId, filters: $filters) {
totalSeconds totalSeconds
} }
} }

View File

@@ -59,6 +59,7 @@ type Query {
getFeedVideos( getFeedVideos(
limit: Int! = 5 limit: Int! = 5
after: String = null after: String = null
includeCallersVideos: Boolean = true
filters: VideoFilterInput = null filters: VideoFilterInput = null
): VideoHistoryGQL! ): VideoHistoryGQL!
} }
@@ -295,21 +296,11 @@ type RequestedMedalsGQL {
totalMakes500: MedalGQL totalMakes500: MedalGQL
totalMakes750: MedalGQL totalMakes750: MedalGQL
totalMakes1000: MedalGQL totalMakes1000: MedalGQL
dayStreak2: MedalGQL
dayStreak3: MedalGQL
dayStreak4: MedalGQL
dayStreak5: MedalGQL
dayStreak6: MedalGQL
dayStreak7: MedalGQL
dayStreak14: MedalGQL
dayStreak21: MedalGQL
dayStreak30: MedalGQL
dayStreak60: MedalGQL
dayStreak90: MedalGQL
} }
type MedalGQL { type MedalGQL {
count: Int! count: Int!
nickname: String
} }
input MedalScope @oneOf { input MedalScope @oneOf {
@@ -628,6 +619,7 @@ input VideoFilterInput {
isStreamCompleted: Boolean = null isStreamCompleted: Boolean = null
requireCursorCompletion: Boolean! = true requireCursorCompletion: Boolean! = true
createdAt: DateRangeFilter = null createdAt: DateRangeFilter = null
excludeVideosWithNoShots: Boolean = null
} }
type VideoHistoryGQL { type VideoHistoryGQL {