Compare commits
	
		
			1 Commits
		
	
	
		
			9db95c4e6c
			...
			kat/get-id
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 478c04215f | 
| @@ -1,7 +1,5 @@ | |||||||
| overwrite: true | overwrite: true | ||||||
| schema: | schema: "src/schema.gql" | ||||||
|   - "src/schema.gql" |  | ||||||
|   - "src/client-schema.gql" |  | ||||||
| documents: "src/**/*.gql" | documents: "src/**/*.gql" | ||||||
| generates: | generates: | ||||||
|   src/index.tsx: |   src/index.tsx: | ||||||
|   | |||||||
| @@ -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" | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,25 +0,0 @@ | |||||||
| # see: https://www.apollographql.com/docs/react/local-state/managing-state-with-field-policies/ |  | ||||||
| directive @client on FIELD |  | ||||||
|  |  | ||||||
| extend type ShotGQL { |  | ||||||
|   startTime: Float! |  | ||||||
|   endTime: Float! |  | ||||||
| } |  | ||||||
|  |  | ||||||
| extend type UploadStreamGQL { |  | ||||||
|   segmentEndFrames: [Int!]! |  | ||||||
| } |  | ||||||
|  |  | ||||||
| extend type HLSPlaylistGQL { |  | ||||||
|   segmentStartTimes: [Float!]! |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type SegmentEndFramesGQL { |  | ||||||
|   id: Int! |  | ||||||
|   segmentEndFrames: [Int!]! |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type SegmentStartTimesGQL { |  | ||||||
|   id: Int! |  | ||||||
|   segmentStartTimes: [Float!]! |  | ||||||
| } |  | ||||||
							
								
								
									
										1802
									
								
								src/index.tsx
									
									
									
									
									
								
							
							
						
						
									
										1802
									
								
								src/index.tsx
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -21,7 +21,6 @@ query GetFeed( | |||||||
|       elapsedTime |       elapsedTime | ||||||
|       screenshotUri |       screenshotUri | ||||||
|       stream { |       stream { | ||||||
|         id |  | ||||||
|         isCompleted |         isCompleted | ||||||
|       } |       } | ||||||
|       tableSize |       tableSize | ||||||
|   | |||||||
| @@ -17,72 +17,6 @@ query GetShotAnnotationTypes { | |||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| mutation UpdateShotAnnotations( |  | ||||||
|   $shotId: Int! |  | ||||||
|   $annotations: [UpdateAnnotationInputGQL!]! |  | ||||||
| ) { |  | ||||||
|   updateShotAnnotations(shotId: $shotId, annotations: $annotations) { |  | ||||||
|     shot { |  | ||||||
|       id |  | ||||||
|       annotations { |  | ||||||
|         shotId |  | ||||||
|         type { |  | ||||||
|           id |  | ||||||
|           name |  | ||||||
|         } |  | ||||||
|         notes |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|     error { |  | ||||||
|       shotId |  | ||||||
|       msg |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| query GetShotsWithVideoGql( |  | ||||||
|   $filterInput: FilterInput! |  | ||||||
|   $shotsOrdering: GetShotsOrdering |  | ||||||
|   $limit: Int |  | ||||||
| ) { |  | ||||||
|   getOrderedShots( |  | ||||||
|     filterInput: $filterInput |  | ||||||
|     shotsOrdering: $shotsOrdering |  | ||||||
|     limit: $limit |  | ||||||
|   ) { |  | ||||||
|     shots { |  | ||||||
|       id |  | ||||||
|       videoId |  | ||||||
|       video { |  | ||||||
|         screenshotUri |  | ||||||
|         endTime |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| ## Reserved for playlists (which are created from a filter) |  | ||||||
| query GetShotsWithMetadataFilterResult( |  | ||||||
|   $filterInput: FilterInput! |  | ||||||
|   $shotsOrdering: GetShotsOrdering |  | ||||||
|   $limit: Int |  | ||||||
|   $ids: [Int!] |  | ||||||
| ) { |  | ||||||
|   getOrderedShots( |  | ||||||
|     filterInput: $filterInput |  | ||||||
|     shotsOrdering: $shotsOrdering |  | ||||||
|     limit: $limit |  | ||||||
|     ids: $ids |  | ||||||
|   ) { |  | ||||||
|     count |  | ||||||
|     shots { |  | ||||||
|       ...ShotWithAllFeatures |  | ||||||
|     } |  | ||||||
|     ids |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| # TODO: Delete |  | ||||||
| query GetShotsWithMetadata( | query GetShotsWithMetadata( | ||||||
|   $filterInput: FilterInput! |   $filterInput: FilterInput! | ||||||
|   $shotsPagination: GetShotsPagination |   $shotsPagination: GetShotsPagination | ||||||
| @@ -114,12 +48,18 @@ fragment ShotWithAllFeatures on ShotGQL { | |||||||
|   videoId |   videoId | ||||||
|   startFrame |   startFrame | ||||||
|   endFrame |   endFrame | ||||||
|   startTime @client |  | ||||||
|   endTime @client |  | ||||||
|   user { |   user { | ||||||
|     id |     id | ||||||
|   } |   } | ||||||
|   falsePositiveScore |   falsePositiveScore | ||||||
|  |   video { | ||||||
|  |     stream { | ||||||
|  |       resolution { | ||||||
|  |         width | ||||||
|  |         height | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } | ||||||
|   createdAt |   createdAt | ||||||
|   updatedAt |   updatedAt | ||||||
|   cueObjectFeatures { |   cueObjectFeatures { | ||||||
| @@ -130,11 +70,8 @@ fragment ShotWithAllFeatures on ShotGQL { | |||||||
|     spinType |     spinType | ||||||
|   } |   } | ||||||
|   pocketingIntentionFeatures { |   pocketingIntentionFeatures { | ||||||
|     make |  | ||||||
|     targetPocketDistance |     targetPocketDistance | ||||||
|     targetPocketAngle |     make | ||||||
|     targetPocketAngleDirection |  | ||||||
|     marginOfErrorInDegrees |  | ||||||
|     intendedPocketType |     intendedPocketType | ||||||
|   } |   } | ||||||
|   pocketingIntentionInfo { |   pocketingIntentionInfo { | ||||||
| @@ -145,12 +82,4 @@ fragment ShotWithAllFeatures on ShotGQL { | |||||||
|   serializedShotPaths { |   serializedShotPaths { | ||||||
|     b64EncodedBuffer |     b64EncodedBuffer | ||||||
|   } |   } | ||||||
|   annotations { |  | ||||||
|     shotId |  | ||||||
|     type { |  | ||||||
|       id |  | ||||||
|       name |  | ||||||
|     } |  | ||||||
|     notes |  | ||||||
|   } |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -37,7 +37,6 @@ query getLoggedInUser { | |||||||
|     username |     username | ||||||
|     isAdmin |     isAdmin | ||||||
|     profileImageUri |     profileImageUri | ||||||
|     fargoRating |  | ||||||
|     activeVideoId |     activeVideoId | ||||||
|     createdAt |     createdAt | ||||||
|     updatedAt |     updatedAt | ||||||
| @@ -58,70 +57,9 @@ query getUsernames( | |||||||
|   getUsernames(matchString: $matchString, limit: $limit, after: $after) |   getUsernames(matchString: $matchString, limit: $limit, after: $after) | ||||||
| } | } | ||||||
|  |  | ||||||
| query getUserRelationshipsMatching( |  | ||||||
|   $userId: Int! |  | ||||||
|   $matchString: String! |  | ||||||
|   $limit: Int = null |  | ||||||
|   $after: String = null |  | ||||||
| ) { |  | ||||||
|   getUserRelationshipsMatching( |  | ||||||
|     userId: $userId |  | ||||||
|     matchString: $matchString |  | ||||||
|     limit: $limit |  | ||||||
|     after: $after |  | ||||||
|   ) { |  | ||||||
|     relationships { |  | ||||||
|       toUser { |  | ||||||
|         username |  | ||||||
|         id |  | ||||||
|       } |  | ||||||
|       toUserFollows |  | ||||||
|       toUserIsFollowedBy |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| query GetUserTags { | query GetUserTags { | ||||||
|   getUserTags { |   getUserTags { | ||||||
|     id |     id | ||||||
|     name |     name | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| mutation followUser($followedUserId: Int!) { |  | ||||||
|   followUser(followedUserId: $followedUserId) { |  | ||||||
|     username |  | ||||||
|     following { |  | ||||||
|       id |  | ||||||
|     } |  | ||||||
|     followers { |  | ||||||
|       id |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| mutation unfollowUser($followedUserId: Int!) { |  | ||||||
|   unfollowUser(followedUserId: $followedUserId) { |  | ||||||
|     username |  | ||||||
|     following { |  | ||||||
|       id |  | ||||||
|     } |  | ||||||
|     followers { |  | ||||||
|       id |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| query getUserFollowingFollowers { |  | ||||||
|   getLoggedInUser { |  | ||||||
|     id |  | ||||||
|     following { |  | ||||||
|       id |  | ||||||
|       username |  | ||||||
|     } |  | ||||||
|     followers { |  | ||||||
|       id |  | ||||||
|       username |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|   | |||||||
| @@ -45,7 +45,6 @@ query GetStreamMonitoringDetails($videoId: Int!, $debuggingJson: JSON) { | |||||||
|       } |       } | ||||||
|     } |     } | ||||||
|     stream { |     stream { | ||||||
|       id |  | ||||||
|       linksRequested |       linksRequested | ||||||
|       uploadsCompleted |       uploadsCompleted | ||||||
|       segmentProcessingCursor |       segmentProcessingCursor | ||||||
| @@ -118,32 +117,22 @@ query GetVideoDetails($videoId: Int!) { | |||||||
|  |  | ||||||
| query GetVideos($videoIds: [Int!]!) { | query GetVideos($videoIds: [Int!]!) { | ||||||
|   getVideos(videoIds: $videoIds) { |   getVideos(videoIds: $videoIds) { | ||||||
|     ...VideoStreamMetadata |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| fragment VideoStreamMetadata on VideoGQL { |  | ||||||
|   id |  | ||||||
|   framesPerSecond |  | ||||||
|   stream { |  | ||||||
|     id |     id | ||||||
|     streamSegmentType |     framesPerSecond | ||||||
|     segments { |     stream { | ||||||
|       uploaded |       id | ||||||
|       valid |       streamSegmentType | ||||||
|       segmentIndex |       segments { | ||||||
|       endFrameIndex |         uploaded | ||||||
|       framesPerSecond |         valid | ||||||
|  |         segmentIndex | ||||||
|  |         endFrameIndex | ||||||
|  |         framesPerSecond | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     playlist { | ||||||
|  |       segmentDurations | ||||||
|     } |     } | ||||||
|   } |  | ||||||
|   playlist { |  | ||||||
|     segmentDurations |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| query GetVideoForShotTime($videoId: Int!) { |  | ||||||
|   getVideo(videoId: $videoId) { |  | ||||||
|     ...VideoStreamMetadata |  | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -195,7 +184,6 @@ query GetVideo($videoId: Int!) { | |||||||
|       } |       } | ||||||
|     } |     } | ||||||
|     stream { |     stream { | ||||||
|       id |  | ||||||
|       streamSegmentType |       streamSegmentType | ||||||
|       segments { |       segments { | ||||||
|         segmentIndex |         segmentIndex | ||||||
| @@ -216,14 +204,12 @@ query GetAverageTimePerShotForVideo($videoId: Int!) { | |||||||
|     averageTimeBetweenShots |     averageTimeBetweenShots | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| query GetElapsedTimeForVideo($videoId: Int!) { | query GetElapsedTimeForVideo($videoId: Int!) { | ||||||
|   getVideo(videoId: $videoId) { |   getVideo(videoId: $videoId) { | ||||||
|     id |     id | ||||||
|     elapsedTime |     elapsedTime | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| query GetMedianRunForVideo($videoId: Int!) { | query GetMedianRunForVideo($videoId: Int!) { | ||||||
|   getVideo(videoId: $videoId) { |   getVideo(videoId: $videoId) { | ||||||
|     id |     id | ||||||
| @@ -231,60 +217,23 @@ query GetMedianRunForVideo($videoId: Int!) { | |||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| fragment StreamWithEndFrames on UploadStreamGQL { |  | ||||||
|   id |  | ||||||
|   streamSegmentType |  | ||||||
|   segmentEndFrames @client |  | ||||||
|   resolution { |  | ||||||
|     width |  | ||||||
|     height |  | ||||||
|   } |  | ||||||
|   segments { |  | ||||||
|     uploaded |  | ||||||
|     valid |  | ||||||
|     segmentIndex |  | ||||||
|     endFrameIndex |  | ||||||
|     framesPerSecond |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| fragment SegmentEndFrames on SegmentEndFramesGQL { |  | ||||||
|   id |  | ||||||
|   segmentEndFrames |  | ||||||
| } |  | ||||||
|  |  | ||||||
| fragment SegmentStartTimes on SegmentStartTimesGQL { |  | ||||||
|   id |  | ||||||
|   segmentStartTimes |  | ||||||
| } |  | ||||||
|  |  | ||||||
| fragment PlaylistWithSegmentStartTimes on HLSPlaylistGQL { |  | ||||||
|   videoId |  | ||||||
|   segmentDurations |  | ||||||
|   segmentStartTimes @client |  | ||||||
| } |  | ||||||
|  |  | ||||||
| fragment VideoDurationData on VideoGQL { |  | ||||||
|   id |  | ||||||
|   framesPerSecond |  | ||||||
|   playlist { |  | ||||||
|     ...PlaylistWithSegmentStartTimes |  | ||||||
|   } |  | ||||||
|   stream { |  | ||||||
|     ...StreamWithEndFrames |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| query GetVideoForClipTimes($videoId: Int!) { | query GetVideoForClipTimes($videoId: Int!) { | ||||||
|   getVideo(videoId: $videoId) { |  | ||||||
|     ...VideoDurationData |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| query GetHeaderInfoByVideoId($videoId: Int!) { |  | ||||||
|   getVideo(videoId: $videoId) { |   getVideo(videoId: $videoId) { | ||||||
|     id |     id | ||||||
|     name |     framesPerSecond | ||||||
|     startTime |     playlist { | ||||||
|  |       segmentDurations | ||||||
|  |     } | ||||||
|  |     stream { | ||||||
|  |       id | ||||||
|  |       streamSegmentType | ||||||
|  |       segments { | ||||||
|  |         uploaded | ||||||
|  |         valid | ||||||
|  |         segmentIndex | ||||||
|  |         endFrameIndex | ||||||
|  |         framesPerSecond | ||||||
|  |       } | ||||||
|  |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										110
									
								
								src/schema.gql
									
									
									
									
									
								
							
							
						
						
									
										110
									
								
								src/schema.gql
									
									
									
									
									
								
							| @@ -9,12 +9,6 @@ type Query { | |||||||
|     videoId: ID! |     videoId: ID! | ||||||
|     intervalDuration: Int! = 300 |     intervalDuration: Int! = 300 | ||||||
|   ): [MakePercentageIntervalGQL!]! |   ): [MakePercentageIntervalGQL!]! | ||||||
|   getOrderedShots( |  | ||||||
|     filterInput: FilterInput! |  | ||||||
|     ids: [Int!] = null |  | ||||||
|     shotsOrdering: GetShotsOrdering = null |  | ||||||
|     limit: Int! = 500 |  | ||||||
|   ): GetShotsResult! |  | ||||||
|   getShotsWithMetadata( |   getShotsWithMetadata( | ||||||
|     filterInput: FilterInput! |     filterInput: FilterInput! | ||||||
|     ids: [Int!] = null |     ids: [Int!] = null | ||||||
| @@ -35,12 +29,6 @@ type Query { | |||||||
|     limit: Int = null |     limit: Int = null | ||||||
|     after: String = null |     after: String = null | ||||||
|   ): [String!]! |   ): [String!]! | ||||||
|   getUserRelationshipsMatching( |  | ||||||
|     userId: Int! |  | ||||||
|     matchString: String = null |  | ||||||
|     limit: Int = 100 |  | ||||||
|     after: String = null |  | ||||||
|   ): UserRelationshipsResult! |  | ||||||
|   getPlayTime(userId: Int!): UserPlayTimeGQL! |   getPlayTime(userId: Int!): UserPlayTimeGQL! | ||||||
|   getUserVideos( |   getUserVideos( | ||||||
|     userId: Int = null |     userId: Int = null | ||||||
| @@ -51,11 +39,6 @@ type Query { | |||||||
|   getUserTags: [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( |  | ||||||
|     limit: Int! = 5 |  | ||||||
|     after: String = null |  | ||||||
|     filters: VideoFilterInput = null |  | ||||||
|   ): VideoHistoryGQL! |  | ||||||
| } | } | ||||||
|  |  | ||||||
| type AggregateResultGQL { | type AggregateResultGQL { | ||||||
| @@ -142,7 +125,6 @@ enum AlignedIntervalEnum { | |||||||
|   MONTH |   MONTH | ||||||
|   YEAR |   YEAR | ||||||
|   WEEK |   WEEK | ||||||
|   DAY |  | ||||||
| } | } | ||||||
|  |  | ||||||
| input FilterInput @oneOf { | input FilterInput @oneOf { | ||||||
| @@ -158,8 +140,6 @@ input FilterInput @oneOf { | |||||||
|   shotDirection: [ShotDirectionEnum!] |   shotDirection: [ShotDirectionEnum!] | ||||||
|   videoId: [Int!] |   videoId: [Int!] | ||||||
|   userId: [Int!] |   userId: [Int!] | ||||||
|   username: [String!] |  | ||||||
|   fargoRating: FloatRangeFilter |  | ||||||
|   make: [Boolean!] |   make: [Boolean!] | ||||||
|   tags: [VideoTagInput!] |   tags: [VideoTagInput!] | ||||||
|   annotations: [ShotAnnotationInput!] |   annotations: [ShotAnnotationInput!] | ||||||
| @@ -182,10 +162,7 @@ input FilterInput @oneOf { | |||||||
|   targetPocketAngleDirection: [ShotDirectionEnum!] |   targetPocketAngleDirection: [ShotDirectionEnum!] | ||||||
|   targetPocketAngle: FloatRangeFilter |   targetPocketAngle: FloatRangeFilter | ||||||
|   missAngleInDegrees: FloatRangeFilter |   missAngleInDegrees: FloatRangeFilter | ||||||
|   marginOfErrorInDegrees: FloatRangeFilter |  | ||||||
|   createdAt: DateRangeFilter |   createdAt: DateRangeFilter | ||||||
|   totalDistance: FloatRangeFilter |  | ||||||
|   runLength: FloatRangeFilter |  | ||||||
| } | } | ||||||
|  |  | ||||||
| input FloatRangeFilter { | input FloatRangeFilter { | ||||||
| @@ -305,7 +282,6 @@ type PocketingIntentionFeaturesGQL { | |||||||
|   difficulty: Float |   difficulty: Float | ||||||
|   targetPocketAngle: Float |   targetPocketAngle: Float | ||||||
|   targetPocketAngleDirection: ShotDirectionEnum |   targetPocketAngleDirection: ShotDirectionEnum | ||||||
|   marginOfErrorInDegrees: Float |  | ||||||
|   backcut: Boolean |   backcut: Boolean | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -341,16 +317,13 @@ type SerializedShotPathsGQL { | |||||||
|  |  | ||||||
| type UserGQL { | type UserGQL { | ||||||
|   id: Int! |   id: Int! | ||||||
|   firebaseUid: String |   firebaseUid: String! | ||||||
|   username: String! |   username: String! | ||||||
|   isAdmin: Boolean |   isAdmin: Boolean! | ||||||
|   fargoRating: Int |  | ||||||
|   activeVideoId: Int |   activeVideoId: Int | ||||||
|   profileImageUri: String |   profileImageUri: String | ||||||
|   createdAt: DateTime |   createdAt: DateTime | ||||||
|   updatedAt: DateTime |   updatedAt: DateTime | ||||||
|   following: [UserGQL!] |  | ||||||
|   followers: [UserGQL!] |  | ||||||
| } | } | ||||||
|  |  | ||||||
| type ShotAnnotationGQL { | type ShotAnnotationGQL { | ||||||
| @@ -517,33 +490,6 @@ type VideoProcessingStatusGQL { | |||||||
|   updatedAt: DateTime |   updatedAt: DateTime | ||||||
| } | } | ||||||
|  |  | ||||||
| input GetShotsOrdering { |  | ||||||
|   orderings: [ShotsOrderingComponent!]! |  | ||||||
| } |  | ||||||
|  |  | ||||||
| input ShotsOrderingComponent @oneOf { |  | ||||||
|   videoCreation: DatetimeShotOrdering |  | ||||||
|   marginOfError: FloatShotOrdering |  | ||||||
|   videoId: IntShotOrdering |  | ||||||
|   startFrame: IntShotOrdering |  | ||||||
|   runLength: IntShotOrdering |  | ||||||
| } |  | ||||||
|  |  | ||||||
| input DatetimeShotOrdering { |  | ||||||
|   descending: Boolean! = true |  | ||||||
|   startingAt: DateTime = null |  | ||||||
| } |  | ||||||
|  |  | ||||||
| input FloatShotOrdering { |  | ||||||
|   descending: Boolean! = true |  | ||||||
|   startingAt: Float = null |  | ||||||
| } |  | ||||||
|  |  | ||||||
| input IntShotOrdering { |  | ||||||
|   descending: Boolean! = true |  | ||||||
|   startingAt: Int = null |  | ||||||
| } |  | ||||||
|  |  | ||||||
| input GetShotsPagination { | input GetShotsPagination { | ||||||
|   createdAfter: CreatedAfter! |   createdAfter: CreatedAfter! | ||||||
|   startFrameAfter: Int! |   startFrameAfter: Int! | ||||||
| @@ -554,17 +500,6 @@ input CreatedAfter @oneOf { | |||||||
|   createdAt: DateTime |   createdAt: DateTime | ||||||
| } | } | ||||||
|  |  | ||||||
| type UserRelationshipsResult { |  | ||||||
|   inquiringUser: UserGQL! |  | ||||||
|   relationships: [UserRelationship!]! |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type UserRelationship { |  | ||||||
|   toUser: UserGQL! |  | ||||||
|   toUserFollows: Boolean! |  | ||||||
|   toUserIsFollowedBy: Boolean! |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type UserPlayTimeGQL { | type UserPlayTimeGQL { | ||||||
|   totalSeconds: Float! |   totalSeconds: Float! | ||||||
| } | } | ||||||
| @@ -606,17 +541,10 @@ type Mutation { | |||||||
|     annotationName: String! |     annotationName: String! | ||||||
|     notes: String = null |     notes: String = null | ||||||
|   ): AddShotAnnotationReturn! |   ): AddShotAnnotationReturn! | ||||||
|   updateShotAnnotations( |  | ||||||
|     shotId: Int! |  | ||||||
|     annotations: [UpdateAnnotationInputGQL!]! |  | ||||||
|   ): UpdateShotAnnotationReturn! |  | ||||||
|   getProfileImageUploadLink( |   getProfileImageUploadLink( | ||||||
|     fileExt: String = ".png" |     fileExt: String = ".png" | ||||||
|   ): GetProfileUploadLinkReturn! |   ): GetProfileUploadLinkReturn! | ||||||
|   editProfileImageUri(profileImageUri: String!): UserGQL! |   editProfileImageUri(profileImageUri: String!): UserGQL! | ||||||
|   editUser(input: EditUserInputGQL!): UserGQL! |  | ||||||
|   followUser(followedUserId: Int!): UserGQL! |  | ||||||
|   unfollowUser(followedUserId: Int!): UserGQL! |  | ||||||
|   createUploadStream( |   createUploadStream( | ||||||
|     videoMetadata: VideoMetadataInput! |     videoMetadata: VideoMetadataInput! | ||||||
|   ): CreateUploadStreamReturn! |   ): CreateUploadStreamReturn! | ||||||
| @@ -666,16 +594,6 @@ type OtherErrorNeedsNote { | |||||||
|   msg: String |   msg: String | ||||||
| } | } | ||||||
|  |  | ||||||
| type UpdateShotAnnotationReturn { |  | ||||||
|   shot: ShotGQL |  | ||||||
|   error: DoesNotOwnShotErr |  | ||||||
| } |  | ||||||
|  |  | ||||||
| input UpdateAnnotationInputGQL { |  | ||||||
|   name: String! |  | ||||||
|   notes: String = null |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type GetProfileUploadLinkReturn { | type GetProfileUploadLinkReturn { | ||||||
|   value: UploadLinkGetProfileUploadLinkErrors! |   value: UploadLinkGetProfileUploadLinkErrors! | ||||||
| } | } | ||||||
| @@ -702,11 +620,6 @@ type TooManyProfileImageUploadsErr { | |||||||
|   linksRequested: Int! |   linksRequested: Int! | ||||||
| } | } | ||||||
|  |  | ||||||
| input EditUserInputGQL { |  | ||||||
|   username: String = null |  | ||||||
|   fargoRating: Int = null |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type CreateUploadStreamReturn { | type CreateUploadStreamReturn { | ||||||
|   videoId: Int! |   videoId: Int! | ||||||
| } | } | ||||||
| @@ -717,6 +630,7 @@ input VideoMetadataInput { | |||||||
|   endTime: DateTime = null |   endTime: DateTime = null | ||||||
|   gameType: String = null |   gameType: String = null | ||||||
|   tableSize: Float = null |   tableSize: Float = null | ||||||
|  |   uploadStreamMetadataInput: UploadStreamMetadataInput = null | ||||||
|   lastIntendedSegmentBound: Int = null |   lastIntendedSegmentBound: Int = null | ||||||
|   streamSegmentType: StreamSegmentTypeEnum = null |   streamSegmentType: StreamSegmentTypeEnum = null | ||||||
|   endStream: Boolean! = false |   endStream: Boolean! = false | ||||||
| @@ -724,6 +638,24 @@ input VideoMetadataInput { | |||||||
|   framesPerSecond: Float = null |   framesPerSecond: Float = null | ||||||
| } | } | ||||||
|  |  | ||||||
|  | input UploadStreamMetadataInput { | ||||||
|  |   deviceType: DeviceTypeEnum = null | ||||||
|  |   osVersion: String = null | ||||||
|  |   appVersion: String = null | ||||||
|  |   browserName: String = null | ||||||
|  |   browserVersion: String = null | ||||||
|  |   locale: String = null | ||||||
|  |   timezone: String = null | ||||||
|  |   networkType: String = null | ||||||
|  |   ipAddress: String = null | ||||||
|  | } | ||||||
|  |  | ||||||
|  | enum DeviceTypeEnum { | ||||||
|  |   IOS | ||||||
|  |   ANDROID | ||||||
|  |   BROWSER | ||||||
|  | } | ||||||
|  |  | ||||||
| input VideoResolution { | input VideoResolution { | ||||||
|   width: Int! |   width: Int! | ||||||
|   height: Int! |   height: Int! | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user