Compare commits

..

1 Commits

Author SHA1 Message Date
4385516546 getUser by user id query 2024-12-19 10:25:51 -08:00
13 changed files with 33 additions and 1116 deletions

View File

@@ -12,7 +12,7 @@
"author": "Ivan Malison <IvanMalison@gmail.com>", "author": "Ivan Malison <IvanMalison@gmail.com>",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@apollo/client": "^3.11.10", "@apollo/client": "^3.9.2",
"@graphql-codegen/cli": "^5.0.0", "@graphql-codegen/cli": "^5.0.0",
"@graphql-codegen/typescript": "^4.0.1", "@graphql-codegen/typescript": "^4.0.1",
"@graphql-codegen/typescript-operations": "^4.0.1", "@graphql-codegen/typescript-operations": "^4.0.1",

View File

@@ -1,16 +1,9 @@
# see: https://www.apollographql.com/docs/react/local-state/managing-state-with-field-policies/ # see: https://www.apollographql.com/docs/react/local-state/managing-state-with-field-policies/
directive @client on FIELD directive @client on FIELD
type SegmentInfo {
index: Int!
time: Float!
}
extend type ShotGQL { extend type ShotGQL {
startTime: Float! startTime: Float!
endTime: Float! endTime: Float!
startSegment: SegmentInfo!
endSegment: SegmentInfo!
} }
extend type UploadStreamGQL { extend type UploadStreamGQL {

File diff suppressed because it is too large Load Diff

View File

@@ -27,8 +27,6 @@ fragment VideoCardFields on VideoGQL {
totalShotsMade totalShotsMade
totalShots totalShots
makePercentage makePercentage
averageTimeBetweenShots
averageDifficulty
createdAt createdAt
updatedAt updatedAt
startTime startTime
@@ -38,7 +36,6 @@ fragment VideoCardFields on VideoGQL {
screenshotUri screenshotUri
stream { stream {
id id
lastIntendedSegmentBound
isCompleted isCompleted
} }
tableSize tableSize

View File

@@ -1,32 +0,0 @@
query GetMakesLeaderboard($interval: TimeInterval, $when: DateTime) {
getMakesLeaderboard(interval: $interval, when: $when) {
entries {
user {
id
username
profileImageUri
}
value
proportionMade
total
}
}
}
query GetRunsLeaderboard($interval: TimeInterval, $when: DateTime) {
getLongestRunsLeaderboard(interval: $interval, when: $when) {
entries {
id
runLength
video {
name
createdAt
}
user {
id
username
profileImageUri
}
}
}
}

View File

@@ -1,24 +0,0 @@
query GetRunsForHighlights(
$filterInput: RunFilterInput!
$runIds: [Int!] = null
$runsOrdering: GetRunsOrdering
) {
getRuns(
filterInput: $filterInput
runIds: $runIds
runsOrdering: $runsOrdering
) {
count
runs {
id
runLength
userId
videoId
shots {
videoId
id
}
}
runIds
}
}

View File

@@ -139,14 +139,6 @@ fragment ShotWithAllFeatures on ShotGQL {
endFrame endFrame
startTime @client startTime @client
endTime @client endTime @client
startSegment @client {
index
time
}
endSegment @client {
index
time
}
user { user {
id id
} }

View File

@@ -1,7 +0,0 @@
mutation RetireTags($tagIds: [Int!]!) {
retireTags(tagIds: $tagIds)
}
mutation DeleteTags($videoId: Int!, $tagsToDelete: [VideoTagInput!]!) {
deleteTags(videoId: $videoId, tagsToDelete: $tagsToDelete)
}

View File

@@ -66,7 +66,6 @@ query getUserRelationshipsMatching(
relationships { relationships {
toUser { toUser {
username username
profileImageUri
id id
} }
toUserFollows toUserFollows
@@ -79,10 +78,6 @@ query GetUserTags {
getUserTags { getUserTags {
id id
name name
tagClasses {
id
name
}
} }
} }
@@ -122,12 +117,10 @@ query getUserFollowingFollowers {
following { following {
id id
username username
profileImageUri
} }
followers { followers {
id id
username username
profileImageUri
} }
} }
} }

View File

@@ -216,23 +216,6 @@ query GetHeaderInfoByVideoId($videoId: Int!) {
startTime startTime
} }
} }
query GetBannerInfoByVideoId($videoId: Int!) {
getVideo(videoId: $videoId) {
id
name
stream {
id
lastIntendedSegmentBound
}
owner {
id
}
currentProcessing {
id
status
}
}
}
mutation FindPrerecordTableLayout($b64Image: String!, $videoId: Int!) { mutation FindPrerecordTableLayout($b64Image: String!, $videoId: Int!) {
findPrerecordTableLayout(b64Image: $b64Image, videoId: $videoId) { findPrerecordTableLayout(b64Image: $b64Image, videoId: $videoId) {

View File

@@ -101,19 +101,6 @@ query GetUploadStreams(
} }
} }
} }
fragment UploadStreamWithDetails on VideoGQL {
id
name
startTime
stream {
isCompleted
lastIntendedSegmentBound
uploadCompletionCursor
uploadsCompleted
}
}
query GetUploadStreamsWithDetails( query GetUploadStreamsWithDetails(
$limit: Int! = 5 $limit: Int! = 5
$after: String = null $after: String = null
@@ -121,7 +108,15 @@ query GetUploadStreamsWithDetails(
) { ) {
getUserVideos(limit: $limit, after: $after, filters: $filters) { getUserVideos(limit: $limit, after: $after, filters: $filters) {
videos { videos {
...UploadStreamWithDetails id
name
startTime
stream {
isCompleted
lastIntendedSegmentBound
uploadCompletionCursor
uploadsCompleted
}
} }
pageInfo { pageInfo {
hasNextPage hasNextPage

View File

@@ -60,7 +60,7 @@ type Query {
after: String = null after: String = null
filters: VideoFilterInput = null filters: VideoFilterInput = null
): VideoHistoryGQL! ): VideoHistoryGQL!
getUserTags(includeRetiredTags: Boolean = false): [TagGQL!]! getUserTags: [TagGQL!]!
getVideo(videoId: Int!, debuggingJson: JSON = null): VideoGQL! getVideo(videoId: Int!, debuggingJson: JSON = null): VideoGQL!
getVideos(videoIds: [Int!]!): [VideoGQL!]! getVideos(videoIds: [Int!]!): [VideoGQL!]!
getFeedVideos( getFeedVideos(
@@ -71,16 +71,6 @@ type Query {
filters: VideoFilterInput = null filters: VideoFilterInput = null
feedInput: VideoFeedInputGQL = null feedInput: VideoFeedInputGQL = null
): VideoHistoryGQL! ): VideoHistoryGQL!
getLongestRunsLeaderboard(
interval: TimeInterval = null
when: DateTime = null
limit: Int! = 100
requiredTags: [String!] = null
): RunLeaderboardGQL!
getMakesLeaderboard(
interval: TimeInterval = null
when: DateTime = null
): CountLeaderboardGQL!
} }
type AggregateResultGQL { type AggregateResultGQL {
@@ -183,7 +173,6 @@ input FilterInput @oneOf {
shotDirection: [ShotDirectionEnum!] shotDirection: [ShotDirectionEnum!]
videoId: [Int!] videoId: [Int!]
userId: [Int!] userId: [Int!]
runId: [Int!]
username: [String!] username: [String!]
fargoRating: FloatRangeFilter fargoRating: FloatRangeFilter
make: [Boolean!] make: [Boolean!]
@@ -195,7 +184,6 @@ input FilterInput @oneOf {
isLeftMiss: [Boolean!] isLeftMiss: [Boolean!]
isRightMiss: [Boolean!] isRightMiss: [Boolean!]
isDirect: [Boolean!] isDirect: [Boolean!]
isBreakHeuristic: [Boolean!]
tableSize: FloatRangeFilter tableSize: FloatRangeFilter
bankAngle: FloatRangeFilter bankAngle: FloatRangeFilter
bankDistance: FloatRangeFilter bankDistance: FloatRangeFilter
@@ -350,8 +338,6 @@ type RunGQL {
videoId: Int! videoId: Int!
userId: Int! userId: Int!
shots: [ShotGQL!]! shots: [ShotGQL!]!
video: VideoGQL!
user: UserGQL!
} }
type ShotGQL { type ShotGQL {
@@ -370,8 +356,6 @@ type ShotGQL {
annotations: [ShotAnnotationGQL!]! annotations: [ShotAnnotationGQL!]!
falsePositiveScore: Float falsePositiveScore: Float
video: VideoGQL video: VideoGQL
run: RunGQL
runFeatures: RunFeaturesGQL
} }
type CueObjectFeaturesGQL { type CueObjectFeaturesGQL {
@@ -463,7 +447,6 @@ type VideoGQL {
makePercentage: Float! makePercentage: Float!
medianRun: Float medianRun: Float
averageTimeBetweenShots: Float averageTimeBetweenShots: Float
averageDifficulty: Float
createdAt: DateTime createdAt: DateTime
updatedAt: DateTime updatedAt: DateTime
shots: [ShotGQL!]! shots: [ShotGQL!]!
@@ -479,7 +462,6 @@ type VideoGQL {
currentHomography: HomographyInfoGQL currentHomography: HomographyInfoGQL
homographyHistory: [HomographyInfoGQL!]! homographyHistory: [HomographyInfoGQL!]!
currentProcessing: VideoProcessingGQL currentProcessing: VideoProcessingGQL
reactions: [ReactionGQL!]!
} }
type UploadStreamGQL { type UploadStreamGQL {
@@ -613,26 +595,6 @@ type VideoProcessingStatusGQL {
updatedAt: DateTime updatedAt: DateTime
} }
type ReactionGQL {
videoId: Int!
user: UserGQL!
reaction: ReactionEnum!
createdAt: DateTime
updatedAt: DateTime
}
enum ReactionEnum {
LIKE
HEART
BULLSEYE
HUNDRED
}
type RunFeaturesGQL {
runId: Int!
indexInRun: Int!
}
input RunFilterInput { input RunFilterInput {
videoId: [Int!] videoId: [Int!]
userId: [Int!] userId: [Int!]
@@ -732,15 +694,9 @@ type PageInfoGQL {
} }
type TagGQL { type TagGQL {
id: Int!
name: String! name: String!
tagClasses: [TagClassGQL!]
retired: Boolean!
}
type TagClassGQL {
id: Int! id: Int!
name: String! group: String
} }
""" """
@@ -763,22 +719,6 @@ input VideoFeedInputGQL @oneOf {
allUsers: Boolean allUsers: Boolean
} }
type RunLeaderboardGQL {
entries: [RunGQL!]!
}
type CountLeaderboardGQL {
entries: [UserShotCountEntry!]!
}
type UserShotCountEntry {
user: UserGQL!
value: Int!
total: Int!
proportionMade: Float!
videos: Int!
}
type Mutation { type Mutation {
createBucketSet(params: CreateBucketSetInput!): BucketSetGQL! createBucketSet(params: CreateBucketSetInput!): BucketSetGQL!
setLoggerLevel(path: String!, level: String!): Boolean! setLoggerLevel(path: String!, level: String!): Boolean!
@@ -802,7 +742,6 @@ type Mutation {
editUser(input: EditUserInputGQL!): UserGQL! editUser(input: EditUserInputGQL!): UserGQL!
followUser(followedUserId: Int!): UserGQL! followUser(followedUserId: Int!): UserGQL!
unfollowUser(followedUserId: Int!): UserGQL! unfollowUser(followedUserId: Int!): UserGQL!
retireTags(tagIds: [Int!]!): Boolean!
findPrerecordTableLayout(b64Image: String!, videoId: Int!): HomographyInfoGQL findPrerecordTableLayout(b64Image: String!, videoId: Int!): HomographyInfoGQL
createUploadStream( createUploadStream(
videoMetadata: VideoMetadataInput! videoMetadata: VideoMetadataInput!
@@ -816,8 +755,6 @@ type Mutation {
): Boolean! ): Boolean!
editUploadStream(videoId: Int!, videoMetadata: VideoMetadataInput!): Boolean! editUploadStream(videoId: Int!, videoMetadata: VideoMetadataInput!): Boolean!
deleteVideo(videoId: Int!): Boolean! deleteVideo(videoId: Int!): Boolean!
deleteTags(videoId: Int!, tagsToDelete: [VideoTagInput!]!): Boolean!
reactToVideo(videoId: Int!, reaction: ReactionEnum): Boolean!
} }
input CreateBucketSetInput { input CreateBucketSetInput {
@@ -922,12 +859,6 @@ input VideoMetadataInput {
startTime: DateTime = null startTime: DateTime = null
endTime: DateTime = null endTime: DateTime = null
gameType: String = null gameType: String = null
@deprecated(reason: "`game_type` is deprecated. Use `tags` instead.")
"""
A list of tags associated with the video. Replace `game_type`
"""
tags: [VideoTagInput!] = null
tableSize: Float = null tableSize: Float = null
lastIntendedSegmentBound: Int = null lastIntendedSegmentBound: Int = null
streamSegmentType: StreamSegmentTypeEnum = null streamSegmentType: StreamSegmentTypeEnum = null

View File

@@ -10,10 +10,10 @@
"@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/gen-mapping" "^0.3.0"
"@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/trace-mapping" "^0.3.9"
"@apollo/client@^3.11.10": "@apollo/client@^3.9.2":
version "3.12.3" version "3.9.2"
resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.12.3.tgz#0d252749baad8328e06883fe118dc7e73e3bbb1f" resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.9.2.tgz#96edf2c212f828bad1ef3d84234fa473c5a27ff8"
integrity sha512-KZ5zymRdb8bMbGUb1wP2U04ff7qIGgaC1BCdCVC+IPFiXkxEhHBc5fDEQOwAUT+vUo9KbBh3g7QK/JCOswn59w== integrity sha512-Zw9WvXjqhpbgkvAvnj52vstOWwM0iedKWtn1hSq1cODQyoe1CF2uFwMYFI7l56BrAY9CzLi6MQA0AhxpgJgvxw==
dependencies: dependencies:
"@graphql-typed-document-node/core" "^3.1.1" "@graphql-typed-document-node/core" "^3.1.1"
"@wry/caches" "^1.0.0" "@wry/caches" "^1.0.0"
@@ -23,7 +23,7 @@
hoist-non-react-statics "^3.3.2" hoist-non-react-statics "^3.3.2"
optimism "^0.18.0" optimism "^0.18.0"
prop-types "^15.7.2" prop-types "^15.7.2"
rehackt "^0.1.0" rehackt "0.0.3"
response-iterator "^0.2.6" response-iterator "^0.2.6"
symbol-observable "^4.0.0" symbol-observable "^4.0.0"
ts-invariant "^0.10.3" ts-invariant "^0.10.3"
@@ -2633,10 +2633,10 @@ regenerator-runtime@^0.14.0:
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f"
integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==
rehackt@^0.1.0: rehackt@0.0.3:
version "0.1.0" version "0.0.3"
resolved "https://registry.yarnpkg.com/rehackt/-/rehackt-0.1.0.tgz#a7c5e289c87345f70da8728a7eb878e5d03c696b" resolved "https://registry.yarnpkg.com/rehackt/-/rehackt-0.0.3.tgz#1ea454620d4641db8342e2db44595cf0e7ac6aa0"
integrity sha512-7kRDOuLHB87D/JESKxQoRwv4DzbIdwkAGQ7p6QKGdVlY1IZheUnVhlk/4UZlNUVxdAXpyxikE3URsG067ybVzw== integrity sha512-aBRHudKhOWwsTvCbSoinzq+Lej/7R8e8UoPvLZo5HirZIIBLGAgdG7SL9QpdcBoQ7+3QYPi3lRLknAzXBlhZ7g==
relay-runtime@12.0.0: relay-runtime@12.0.0:
version "12.0.0" version "12.0.0"