Compare commits

..

1 Commits

Author SHA1 Message Date
35a8d71128 Make shots pagination optional 2024-08-16 20:17:10 -06:00
8 changed files with 69 additions and 723 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -4,6 +4,5 @@ query getDeployedConfig {
devMode devMode
environment environment
firebase firebase
minimumAllowedAppVersion
} }
} }

View File

@@ -23,7 +23,6 @@ query GetFeed(
stream { stream {
isCompleted isCompleted
} }
tableSize
tags { tags {
tagClasses { tagClasses {
name name

View File

@@ -1,6 +1,6 @@
query GetShots( query GetShots(
$filterInput: FilterInput! $filterInput: FilterInput!
$shotsPagination: GetShotsPagination $shotsPagination: GetShotsPagination = null
$limit: Int $limit: Int
$includeCreatedAt: Boolean! = false $includeCreatedAt: Boolean! = false
$includeUpdatedAt: Boolean! = false $includeUpdatedAt: Boolean! = false
@@ -9,7 +9,6 @@ query GetShots(
$includeCueObjectDistance: Boolean! = false $includeCueObjectDistance: Boolean! = false
$includeCueObjectAngle: Boolean! = false $includeCueObjectAngle: Boolean! = false
$includeCueBallSpeed: Boolean! = false $includeCueBallSpeed: Boolean! = false
$includeSpinType: Boolean! = false
$includeShotDirection: Boolean! = false $includeShotDirection: Boolean! = false
$includeTargetPocketDistance: Boolean! = false $includeTargetPocketDistance: Boolean! = false
$includeMake: Boolean! = false $includeMake: Boolean! = false
@@ -28,14 +27,6 @@ query GetShots(
id id
} }
falsePositiveScore falsePositiveScore
video {
stream {
resolution {
width
height
}
}
}
createdAt @include(if: $includeCreatedAt) createdAt @include(if: $includeCreatedAt)
updatedAt @include(if: $includeUpdatedAt) updatedAt @include(if: $includeUpdatedAt)
cueObjectFeatures @include(if: $includeCueObjectFeatures) { cueObjectFeatures @include(if: $includeCueObjectFeatures) {
@@ -43,7 +34,6 @@ query GetShots(
cueObjectAngle @include(if: $includeCueObjectAngle) cueObjectAngle @include(if: $includeCueObjectAngle)
cueBallSpeed @include(if: $includeCueBallSpeed) cueBallSpeed @include(if: $includeCueBallSpeed)
shotDirection @include(if: $includeShotDirection) shotDirection @include(if: $includeShotDirection)
spinType @include(if: $includeSpinType)
} }
pocketingIntentionFeatures pocketingIntentionFeatures
@include(if: $includePocketingIntentionFeatures) { @include(if: $includePocketingIntentionFeatures) {
@@ -54,18 +44,6 @@ query GetShots(
} }
} }
query GetSerializedShotPaths($filterInput: FilterInput!) {
getShots(filterInput: $filterInput) {
id
videoId
startFrame
endFrame
serializedShotPaths {
b64EncodedBuffer
}
}
}
query GetShotAnnotationTypes { query GetShotAnnotationTypes {
getShotAnnotationTypes { getShotAnnotationTypes {
id id

View File

@@ -1,22 +1,11 @@
mutation getProfileImageUploadLink($fileExt: String = ".png") { mutation getProfileImageUploadLink($fileExt: String = ".png") {
getProfileImageUploadLink(fileExt: $fileExt) { getProfileImageUploadLink(fileExt: $fileExt) {
value {
... on UploadLink {
uploadUrl uploadUrl
headers { headers {
key key
value value
} }
} }
... on GetProfileUploadLinkErrors {
error {
... on TooManyProfileImageUploadsErr {
linksRequested
}
}
}
}
}
} }
mutation editProfileImageUri($profileImageUri: String!) { mutation editProfileImageUri($profileImageUri: String!) {

View File

@@ -70,7 +70,6 @@ query GetVideoUpdatePageDetails($videoId: Int!) {
totalShots totalShots
makePercentage makePercentage
elapsedTime elapsedTime
tableSize
tags { tags {
tagClasses { tagClasses {
name name
@@ -99,7 +98,6 @@ query GetVideoDetails($videoId: Int!) {
totalShotsMade totalShotsMade
createdAt createdAt
updatedAt updatedAt
tableSize
owner { owner {
id id
firebaseUid firebaseUid
@@ -118,10 +116,11 @@ query GetVideoDetails($videoId: Int!) {
query GetVideos($videoIds: [Int!]!) { query GetVideos($videoIds: [Int!]!) {
getVideos(videoIds: $videoIds) { getVideos(videoIds: $videoIds) {
id id
framesPerSecond playlist {
segmentDurations
}
stream { stream {
id id
streamSegmentType
segments { segments {
uploaded uploaded
valid valid
@@ -130,9 +129,6 @@ query GetVideos($videoIds: [Int!]!) {
framesPerSecond framesPerSecond
} }
} }
playlist {
segmentDurations
}
} }
} }

View File

@@ -6,65 +6,22 @@ mutation CreateUploadStream($videoMetadataInput: VideoMetadataInput!) {
mutation GetUploadLink($videoId: Int!, $segmentIndex: Int!) { mutation GetUploadLink($videoId: Int!, $segmentIndex: Int!) {
getUploadLink(videoId: $videoId, segmentIndex: $segmentIndex) { getUploadLink(videoId: $videoId, segmentIndex: $segmentIndex) {
value {
... on UploadLink {
uploadUrl uploadUrl
headers { headers {
key key
value value
} }
} }
... on GetUploadLinkErrors {
error {
... on MustHaveSetForUploadLinkErr {
resolution
framesPerSecond
}
... on SegmentAlreadyUploadedErr {
segmentId
}
... on ProcessingFailedErr {
processing {
status
errors {
message
}
}
}
}
}
}
stream {
uploadCompletionCursor
}
}
} }
mutation GetHlsInitUploadLink($videoId: Int!) { mutation GetHlsInitUploadLink($videoId: Int!) {
getHlsInitUploadLink(videoId: $videoId) { getHlsInitUploadLink(videoId: $videoId) {
value {
... on UploadLink {
uploadUrl uploadUrl
headers { headers {
key key
value value
} }
} }
... on GetUploadLinkErrors {
error {
... on NoInitForChunkedUploadErr {
segmentType
}
... on InitUploadAlreadyCompletedErr {
segmentType
}
... on TooManyInitUploadsErr {
linksRequested
}
}
}
}
}
} }
mutation SetSegmentDuration( mutation SetSegmentDuration(

View File

@@ -9,17 +9,12 @@ type Query {
videoId: ID! videoId: ID!
intervalDuration: Int! = 300 intervalDuration: Int! = 300
): [MakePercentageIntervalGQL!]! ): [MakePercentageIntervalGQL!]!
getShotsWithMetadata(
filterInput: FilterInput!
shotsPagination: GetShotsPagination = null
limit: Int! = 500
): GetShotsResult!
getShots( getShots(
filterInput: FilterInput! filterInput: FilterInput!
shotsPagination: GetShotsPagination = null shotsPagination: GetShotsPagination = null
limit: Int! = 500 limit: Int! = 500
): [ShotGQL!]! ): [ShotGQL!]!
getShotAnnotationTypes(errorTypes: Boolean = false): [ShotAnnotationTypeGQL!]! getShotAnnotationTypes: [ShotAnnotationTypeGQL!]!
getUser(userId: Int!): UserGQL getUser(userId: Int!): UserGQL
getLoggedInUser: UserGQL getLoggedInUser: UserGQL
getUsernames( getUsernames(
@@ -101,24 +96,20 @@ input FilterInput @oneOf {
isLeftMiss: [Boolean!] isLeftMiss: [Boolean!]
isRightMiss: [Boolean!] isRightMiss: [Boolean!]
isDirect: [Boolean!] isDirect: [Boolean!]
tableSize: RangeFilter
bankAngle: RangeFilter bankAngle: RangeFilter
bankDistance: RangeFilter bankDistance: RangeFilter
kickAngle: RangeFilter kickAngle: RangeFilter
kickDistance: RangeFilter kickDistance: RangeFilter
cueAngleAfterObject: RangeFilter cueAngleAfterObject: RangeFilter
spinType: [SpinTypeEnum!]
cueSpeedAfterObject: RangeFilter cueSpeedAfterObject: RangeFilter
spinType: [String!]
falsePositiveScore: RangeFilter falsePositiveScore: RangeFilter
} }
input RangeFilter { input RangeFilter {
lessThan: Float = null lessThan: Float = null
greaterThanEqualTo: Float = null greaterThanEqualTo: Float = null
greaterThan: Float = null
includeOnNone: Boolean! = false includeOnNone: Boolean! = false
lessThanInclusive: Boolean! = false
greaterThanInclusive: Boolean! = true
} }
enum PocketEnum { enum PocketEnum {
@@ -145,13 +136,6 @@ input ShotAnnotationInput {
name: String! name: String!
} }
enum SpinTypeEnum {
DRAW
FOLLOW
CENTER
UNKNOWN
}
type BucketSetGQL { type BucketSetGQL {
keyName: String! keyName: String!
feature: String! feature: String!
@@ -168,7 +152,6 @@ type DeployedConfigGQL {
firebase: Boolean! firebase: Boolean!
devMode: Boolean! devMode: Boolean!
environment: String! environment: String!
minimumAllowedAppVersion: String!
} }
type MakePercentageIntervalGQL { type MakePercentageIntervalGQL {
@@ -176,11 +159,6 @@ type MakePercentageIntervalGQL {
elapsedTime: Float! elapsedTime: Float!
} }
type GetShotsResult {
shots: [ShotGQL!]!
count: Int
}
type ShotGQL { type ShotGQL {
id: Int! id: Int!
videoId: Int! videoId: Int!
@@ -208,7 +186,6 @@ type CueObjectFeaturesGQL {
cueObjectAngle: Float cueObjectAngle: Float
cueBallSpeed: Float cueBallSpeed: Float
shotDirection: ShotDirectionEnum shotDirection: ShotDirectionEnum
spinType: SpinTypeEnum
} }
type PocketingIntentionFeaturesGQL { type PocketingIntentionFeaturesGQL {
@@ -249,7 +226,6 @@ type ShotAnnotationGQL {
type: ShotAnnotationTypeGQL! type: ShotAnnotationTypeGQL!
creator: UserGQL! creator: UserGQL!
notes: String! notes: String!
errorDefault: Boolean!
createdAt: DateTime createdAt: DateTime
updatedAt: DateTime updatedAt: DateTime
} }
@@ -276,7 +252,6 @@ type VideoGQL {
endTime: DateTime endTime: DateTime
elapsedTime: Float elapsedTime: Float
framesPerSecond: Float! framesPerSecond: Float!
tableSize: Float!
stream: UploadStreamGQL stream: UploadStreamGQL
playlist: HLSPlaylistGQL playlist: HLSPlaylistGQL
tags: [VideoTag!]! tags: [VideoTag!]!
@@ -453,14 +428,8 @@ scalar JSON
type Mutation { type Mutation {
createBucketSet(params: CreateBucketSetInput!): BucketSetGQL! createBucketSet(params: CreateBucketSetInput!): BucketSetGQL!
setLoggerLevel(path: String!, level: String!): Boolean! setLoggerLevel(path: String!, level: String!): Boolean!
addAnnotationToShot( addAnnotationToShot(shotId: Int!, annotationName: String!): Boolean!
shotId: Int! getProfileImageUploadLink(fileExt: String = ".png"): GetUploadLinkReturn!
annotationName: String!
notes: String = null
): AddShotAnnotationReturn!
getProfileImageUploadLink(
fileExt: String = ".png"
): GetProfileUploadLinkReturn!
editProfileImageUri(profileImageUri: String!): UserGQL! editProfileImageUri(profileImageUri: String!): UserGQL!
createUploadStream( createUploadStream(
videoMetadata: VideoMetadataInput! videoMetadata: VideoMetadataInput!
@@ -482,46 +451,10 @@ input CreateBucketSetInput {
buckets: [BucketInputGQL!]! buckets: [BucketInputGQL!]!
} }
type AddShotAnnotationReturn { type GetUploadLinkReturn {
value: SuccessfulAddAddShotAnnotationErrors!
}
union SuccessfulAddAddShotAnnotationErrors =
SuccessfulAdd
| AddShotAnnotationErrors
type SuccessfulAdd {
value: Boolean!
}
type AddShotAnnotationErrors {
error: DoesNotOwnShotErrOtherErrorNeedsNote!
}
union DoesNotOwnShotErrOtherErrorNeedsNote =
DoesNotOwnShotErr
| OtherErrorNeedsNote
type DoesNotOwnShotErr {
shotId: Int!
msg: String
}
type OtherErrorNeedsNote {
msg: String
}
type GetProfileUploadLinkReturn {
value: UploadLinkGetProfileUploadLinkErrors!
}
union UploadLinkGetProfileUploadLinkErrors =
UploadLink
| GetProfileUploadLinkErrors
type UploadLink {
uploadUrl: String! uploadUrl: String!
headers: [Header]! headers: [Header]!
uploadCompletionCursor: Int
} }
type Header { type Header {
@@ -529,14 +462,6 @@ type Header {
value: String! value: String!
} }
type GetProfileUploadLinkErrors {
error: TooManyProfileImageUploadsErr!
}
type TooManyProfileImageUploadsErr {
linksRequested: Int!
}
type CreateUploadStreamReturn { type CreateUploadStreamReturn {
videoId: Int! videoId: Int!
} }
@@ -546,7 +471,7 @@ input VideoMetadataInput {
startTime: DateTime = null startTime: DateTime = null
endTime: DateTime = null endTime: DateTime = null
gameType: String = null gameType: String = null
tableSize: Float = null tableSize: String = null
uploadStreamMetadataInput: UploadStreamMetadataInput = null uploadStreamMetadataInput: UploadStreamMetadataInput = null
lastIntendedSegmentBound: Int = null lastIntendedSegmentBound: Int = null
streamSegmentType: StreamSegmentTypeEnum = null streamSegmentType: StreamSegmentTypeEnum = null
@@ -577,48 +502,3 @@ input VideoResolution {
width: Int! width: Int!
height: Int! height: Int!
} }
type GetUploadLinkReturn {
value: UploadLinkGetUploadLinkErrors!
stream: UploadStreamGQL
}
union UploadLinkGetUploadLinkErrors = UploadLink | GetUploadLinkErrors
type GetUploadLinkErrors {
error: MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailedErrNoInitForChunkedUploadErrTooManyProfileImageUploadsErrInitUploadAlreadyCompletedErrTooManyInitUploadsErr!
}
union MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailedErrNoInitForChunkedUploadErrTooManyProfileImageUploadsErrInitUploadAlreadyCompletedErrTooManyInitUploadsErr =
MustHaveSetForUploadLinkErr
| SegmentAlreadyUploadedErr
| ProcessingFailedErr
| NoInitForChunkedUploadErr
| TooManyProfileImageUploadsErr
| InitUploadAlreadyCompletedErr
| TooManyInitUploadsErr
type MustHaveSetForUploadLinkErr {
resolution: Boolean
framesPerSecond: Boolean
}
type SegmentAlreadyUploadedErr {
segmentId: Int!
}
type ProcessingFailedErr {
processing: VideoProcessingGQL!
}
type NoInitForChunkedUploadErr {
segmentType: StreamSegmentTypeEnum!
}
type InitUploadAlreadyCompletedErr {
segmentType: StreamSegmentTypeEnum!
}
type TooManyInitUploadsErr {
linksRequested: Int!
}