Compare commits

...

57 Commits

Author SHA1 Message Date
4c232829b6 Merge pull request 'Add spinType and cueBallSpeed to get shots operation' (#47) from loewy/add-spin-type-to-get-shots into master
Reviewed-on: #47
2024-08-29 19:34:19 -06:00
ddf1036009 add spin type and cue ball speed to get shots operation
All checks were successful
Tests / Tests (pull_request) Successful in 15s
2024-08-29 18:32:05 -07:00
9b3e5c23a0 Merge pull request 'Dummy query to resolve shot paths' (#46) from mk/deserialize-and-render into master
Reviewed-on: #46
Reviewed-by: loewy <loewymalkov@gmail.com>
2024-08-29 12:26:23 -06:00
a7eae9d46b Merge branch 'master' into mk/deserialize-and-render
All checks were successful
Tests / Tests (pull_request) Successful in 5s
2024-08-29 12:24:54 -06:00
8c3e9d6273 Merge pull request 'Add spinType and filter input' (#45) from mk/spin-type into master
Reviewed-on: #45
Reviewed-by: loewy <loewymalkov@gmail.com>
2024-08-28 17:38:43 -06:00
f306cc6c16 Merge branch 'master' into mk/spin-type
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2024-08-28 17:27:58 -06:00
643cdb29e3 Add spinType and filter input
All checks were successful
Tests / Tests (pull_request) Successful in 15s
2024-08-28 16:27:21 -07:00
89287a0100 Merge pull request 'Expose frames per second in get videos' (#44) from kat/expose-frames-per-second into master
Reviewed-on: #44
2024-08-27 10:21:38 -06:00
f9b02f65e0 Expose frames per second in get videos
All checks were successful
Tests / Tests (pull_request) Successful in 7s
2024-08-26 20:53:16 -06:00
41169e2848 Dummy query to get it working for now
All checks were successful
Tests / Tests (pull_request) Successful in 7s
2024-08-26 15:54:43 -07:00
ba36bc709c Merge pull request 'Add resolution to getShots operation' (#42) from loewy/add-resolution-in-get-shots into master
Reviewed-on: #42
Reviewed-by: Ivan Malison <ivanmalison@gmail.com>
Reviewed-by: countablecloud <countablecloud@gmail.com>
2024-08-26 12:42:15 -06:00
4005416233 Merge branch 'master' into loewy/add-resolution-in-get-shots
All checks were successful
Tests / Tests (pull_request) Successful in 15s
2024-08-26 10:23:07 -06:00
db4a6315cd Merge pull request 'Add stream type to get videos' (#43) from kat/add-stream-type-get-videos into master
Reviewed-on: #43
Reviewed-by: Ivan Malison <ivanmalison@gmail.com>
2024-08-26 08:36:44 -06:00
af38fdea64 Add stream type to get videos
All checks were successful
Tests / Tests (pull_request) Successful in 7s
2024-08-26 06:56:40 -06:00
172df69340 add resolution to getShots operation
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2024-08-23 17:29:40 -07:00
a030a0ef16 Merge pull request 'Error reporting types and Errors for Shot Annotation' (#41) from mk/allow-error-reporting into master
Reviewed-on: #41
Reviewed-by: Ivan Malison <ivanmalison@gmail.com>
2024-08-21 16:59:34 -06:00
7a6cc2739f Error reporting types and Errors
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2024-08-21 13:41:24 -07:00
41c9701e18 Merge pull request 'Add separate return to profile image' (#40) from mk/add-separate-return-to-image-upload-link into master
Reviewed-on: #40
Reviewed-by: loewy <loewymalkov@gmail.com>
2024-08-19 15:58:15 -06:00
16e79ed608 Adds stream to get upload link
All checks were successful
Tests / Tests (pull_request) Successful in 14s
2024-08-19 14:54:48 -07:00
f401e1879b Add separate return to profile image
All checks were successful
Tests / Tests (pull_request) Successful in 15s
2024-08-19 14:44:43 -07:00
72b451d322 remove stream from getUploadLink 2024-08-16 18:47:08 -07:00
5350c46e0a Merge pull request 'Adds proper error return to stuff involving upload links' (#39) from mk/add-error-return-to-upload-links into master
Reviewed-on: #39
Reviewed-by: loewy <loewymalkov@gmail.com>
2024-08-16 19:02:31 -06:00
1f5c5774e1 Merge branch 'master' into mk/add-error-return-to-upload-links
All checks were successful
Tests / Tests (pull_request) Successful in 15s
2024-08-16 17:29:18 -06:00
3b29502e7e Adds proper error return to stuff involving upload links
All checks were successful
Tests / Tests (pull_request) Successful in 10s
2024-08-16 16:28:45 -07:00
abc7e9fd05 Merge pull request 'add minimum app version to get config call' (#38) from loewy/add-operation-minimum-app-version into master
Reviewed-on: #38
2024-08-16 16:40:39 -06:00
dd5ce77102 add minimum app version to get config call
All checks were successful
Tests / Tests (pull_request) Successful in 15s
2024-08-16 14:26:24 -07:00
dabaa3d1e1 Add minimum allowed AppVersion to deployed config 2024-08-16 12:21:46 -07:00
a6604a3a6d add tableSize to GetFeed 2024-08-15 19:52:03 -07:00
09a3e0e294 Add table size range filter 2024-08-15 19:42:53 -07:00
f20ca53a2a add tableSize to operations for getVideo
All checks were successful
Tests / Tests (pull_request) Successful in 14s
2024-08-15 18:51:36 -07:00
a2b912500c Merge pull request 'Add table size to return' (#36) from mk/table-size-non-optional-float into master
Reviewed-on: #36
Reviewed-by: loewy <loewymalkov@gmail.com>
2024-08-15 19:12:22 -06:00
7de3d196ba Add table size to return
All checks were successful
Tests / Tests (pull_request) Successful in 8s
2024-08-15 19:11:25 -06:00
6d5669aaf8 Merge pull request 'Make table size nonnullable float' (#35) from mk/table-size-non-optional-float into master
Reviewed-on: #35
Reviewed-by: Ivan Malison <ivanmalison@gmail.com>
2024-08-15 18:19:07 -06:00
2c583509a2 Make table size nonnullable and float
All checks were successful
Tests / Tests (pull_request) Successful in 7s
2024-08-15 16:54:07 -07:00
3480637600 Merge pull request 'Add debugJson to getStreamMonitoringDetails' (#34) from loewy/add-debug-json into master
Reviewed-on: #34
2024-08-13 19:09:11 -06:00
f4665f51b1 add debugJson to getStreamMonitoringDetails
All checks were successful
Tests / Tests (pull_request) Successful in 7s
2024-08-13 15:30:04 -07:00
810212dc12 Merge pull request 'Make pagination optional' (#33) from loewy/make-pagination-optional into master
Reviewed-on: #33
2024-08-13 14:53:15 -06:00
c3210df517 make pagination optional:
All checks were successful
Tests / Tests (pull_request) Successful in 6s
2024-08-13 13:49:12 -07:00
9f5c354433 Merge pull request 'Tweaks for Debugging' (#32) from mk/tweeks-for-debugging into master
Reviewed-on: #32
Reviewed-by: Ivan Malison <ivanmalison@gmail.com>
Reviewed-by: loewy <loewymalkov@gmail.com>
2024-08-13 14:43:39 -06:00
23d9fef2b1 Add Debugging JSON to input
All checks were successful
Tests / Tests (pull_request) Successful in 7s
2024-08-13 13:28:36 -07:00
df3087de7d Add VideoProcessingStatus to VideoProcessing
All checks were successful
Tests / Tests (pull_request) Successful in 6s
2024-08-13 12:42:45 -07:00
5dd8318dab Add status to VideoProcessing 2024-08-13 11:33:31 -07:00
56c8bcce20 Add uploadCompletionCursor to GetUploadLinkReturn
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2024-08-13 10:33:53 -07:00
1c4961db5b Merge pull request 'add uploadsCompleted to getUploadStreamWithDetails query' (#31) from loewy/add-uploads-completed into master
Reviewed-on: #31
Reviewed-by: countablecloud <countablecloud@gmail.com>
2024-08-13 11:22:09 -06:00
5e0d01ea5b add uploadsCompleted to getUploadStreamWithDetails query
All checks were successful
Tests / Tests (pull_request) Successful in 15s
2024-08-13 11:21:11 -06:00
e8938621fc Merge pull request 'Support shots pagination' (#30) from kat/paginate-get-shots into master
Reviewed-on: #30
2024-08-09 15:12:51 -06:00
8c8dcdd8e1 Support shots pagination
All checks were successful
Tests / Tests (pull_request) Successful in 7s
2024-08-09 15:10:36 -06:00
5085c9af90 Add waitFor 2024-08-09 00:59:38 -06:00
85bc743c8e Bump getShots default 2024-08-05 23:36:54 -06:00
b8efa644e3 Merge pull request 'Add frameIndex in operation for getVideo in homographyHistory' (#29) from loewy/add-frame-index-in-homography-history into master
Reviewed-on: #29
Reviewed-by: Ivan Malison <ivanmalison@gmail.com>
2024-08-01 19:52:51 -06:00
c18628a4ca Add pagination to getShots 2024-08-01 19:49:57 -06:00
535e24c9c2 add frameindex in operations
All checks were successful
Tests / Tests (pull_request) Successful in 11s
2024-08-01 14:52:37 -07:00
04308b1003 Merge pull request 'Add addAnnotationToShot' (#28) from mk/add-add-annotation into master
Reviewed-on: #28
Reviewed-by: Ivan Malison <ivanmalison@gmail.com>
2024-07-30 18:10:44 -06:00
43c626141e Add addAnnotationToShot
All checks were successful
Tests / Tests (pull_request) Successful in 15s
2024-07-30 17:08:05 -07:00
c49266e4c1 Merge pull request 'Expose frames per second on video' (#27) from kat/add-video-duration into master
Reviewed-on: #27
2024-07-30 11:54:34 -06:00
6677b9232f Expose frames per second on video
All checks were successful
Tests / Tests (pull_request) Successful in 8s
2024-07-30 11:53:34 -06:00
76e792be88 Merge pull request 'Expose stream type on video' (#26) from kat/create-get-video-for-clip-calculation into master
Reviewed-on: #26
2024-07-30 01:02:18 -06:00
8 changed files with 793 additions and 80 deletions

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@@ -1,5 +1,7 @@
query GetShots( query GetShots(
$filterInput: FilterInput! $filterInput: FilterInput!
$shotsPagination: GetShotsPagination
$limit: Int
$includeCreatedAt: Boolean! = false $includeCreatedAt: Boolean! = false
$includeUpdatedAt: Boolean! = false $includeUpdatedAt: Boolean! = false
$includeCueObjectFeatures: Boolean! = false $includeCueObjectFeatures: Boolean! = false
@@ -7,12 +9,17 @@ 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
$includeIntendedPocketType: Boolean! = false $includeIntendedPocketType: Boolean! = false
) { ) {
getShots(filterInput: $filterInput) { getShots(
filterInput: $filterInput
shotsPagination: $shotsPagination
limit: $limit
) {
id id
videoId videoId
startFrame startFrame
@@ -21,6 +28,14 @@ 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) {
@@ -28,6 +43,7 @@ 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) {
@@ -38,6 +54,18 @@ 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,9 +1,20 @@
mutation getProfileImageUploadLink($fileExt: String = ".png") { mutation getProfileImageUploadLink($fileExt: String = ".png") {
getProfileImageUploadLink(fileExt: $fileExt) { getProfileImageUploadLink(fileExt: $fileExt) {
uploadUrl value {
headers { ... on UploadLink {
key uploadUrl
value headers {
key
value
}
}
... on GetProfileUploadLinkErrors {
error {
... on TooManyProfileImageUploadsErr {
linksRequested
}
}
}
} }
} }
} }

View File

@@ -1,5 +1,5 @@
query GetStreamMonitoringDetails($videoId: Int!) { query GetStreamMonitoringDetails($videoId: Int!, $debuggingJson: JSON) {
getVideo(videoId: $videoId) { getVideo(videoId: $videoId, debuggingJson: $debuggingJson) {
id id
totalShots totalShots
makePercentage makePercentage
@@ -70,6 +70,7 @@ query GetVideoUpdatePageDetails($videoId: Int!) {
totalShots totalShots
makePercentage makePercentage
elapsedTime elapsedTime
tableSize
tags { tags {
tagClasses { tagClasses {
name name
@@ -98,6 +99,7 @@ query GetVideoDetails($videoId: Int!) {
totalShotsMade totalShotsMade
createdAt createdAt
updatedAt updatedAt
tableSize
owner { owner {
id id
firebaseUid firebaseUid
@@ -116,11 +118,10 @@ query GetVideoDetails($videoId: Int!) {
query GetVideos($videoIds: [Int!]!) { query GetVideos($videoIds: [Int!]!) {
getVideos(videoIds: $videoIds) { getVideos(videoIds: $videoIds) {
id id
playlist { framesPerSecond
segmentDurations
}
stream { stream {
id id
streamSegmentType
segments { segments {
uploaded uploaded
valid valid
@@ -129,6 +130,9 @@ query GetVideos($videoIds: [Int!]!) {
framesPerSecond framesPerSecond
} }
} }
playlist {
segmentDurations
}
} }
} }
@@ -139,6 +143,7 @@ query GetVideo($videoId: Int!) {
segmentDurations segmentDurations
} }
homographyHistory { homographyHistory {
frameIndex
crop { crop {
left left
top top
@@ -215,6 +220,7 @@ query GetMedianRunForVideo($videoId: Int!) {
query GetVideoForClipTimes($videoId: Int!) { query GetVideoForClipTimes($videoId: Int!) {
getVideo(videoId: $videoId) { getVideo(videoId: $videoId) {
id id
framesPerSecond
playlist { playlist {
segmentDurations segmentDurations
} }

View File

@@ -6,20 +6,57 @@ 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) {
uploadUrl value {
headers { ... on UploadLink {
key uploadUrl
value headers {
key
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) {
uploadUrl value {
headers { ... on UploadLink {
key uploadUrl
value headers {
key
value
}
}
... on GetUploadLinkErrors {
error {
... on NoInitForChunkedUploadErr {
segmentType
}
}
}
} }
} }
} }
@@ -72,6 +109,7 @@ query GetUploadStreamsWithDetails(
isCompleted isCompleted
lastIntendedSegmentBound lastIntendedSegmentBound
uploadCompletionCursor uploadCompletionCursor
uploadsCompleted
} }
} }
pageInfo { pageInfo {

View File

@@ -4,12 +4,17 @@ type Query {
): [AggregateResultGQL!]! ): [AggregateResultGQL!]!
getBucketSet(keyName: String!): BucketSetGQL getBucketSet(keyName: String!): BucketSetGQL
getDeployedConfig: DeployedConfigGQL! getDeployedConfig: DeployedConfigGQL!
waitFor(duration: Float!): Float!
getVideoMakePercentageIntervals( getVideoMakePercentageIntervals(
videoId: ID! videoId: ID!
intervalDuration: Int! = 300 intervalDuration: Int! = 300
): [MakePercentageIntervalGQL!]! ): [MakePercentageIntervalGQL!]!
getShots(filterInput: FilterInput!): [ShotGQL!]! getShots(
getShotAnnotationTypes: [ShotAnnotationTypeGQL!]! filterInput: FilterInput!
shotsPagination: GetShotsPagination = null
limit: Int! = 500
): [ShotGQL!]!
getShotAnnotationTypes(errorTypes: Boolean = false): [ShotAnnotationTypeGQL!]!
getUser(userId: Int!): UserGQL getUser(userId: Int!): UserGQL
getLoggedInUser: UserGQL getLoggedInUser: UserGQL
getUsernames( getUsernames(
@@ -25,7 +30,7 @@ type Query {
filters: VideoFilterInput = null filters: VideoFilterInput = null
): VideoHistoryGQL! ): VideoHistoryGQL!
getUserTags: [TagGQL!]! getUserTags: [TagGQL!]!
getVideo(videoId: Int!): VideoGQL! getVideo(videoId: Int!, debuggingJson: JSON = null): VideoGQL!
getVideos(videoIds: [Int!]!): [VideoGQL!]! getVideos(videoIds: [Int!]!): [VideoGQL!]!
} }
@@ -91,20 +96,24 @@ 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 {
@@ -131,6 +140,13 @@ input ShotAnnotationInput {
name: String! name: String!
} }
enum SpinTypeEnum {
DRAW
FOLLOW
CENTER
UNKNOWN
}
type BucketSetGQL { type BucketSetGQL {
keyName: String! keyName: String!
feature: String! feature: String!
@@ -147,6 +163,7 @@ type DeployedConfigGQL {
firebase: Boolean! firebase: Boolean!
devMode: Boolean! devMode: Boolean!
environment: String! environment: String!
minimumAllowedAppVersion: String!
} }
type MakePercentageIntervalGQL { type MakePercentageIntervalGQL {
@@ -168,6 +185,7 @@ type ShotGQL {
user: UserGQL user: UserGQL
annotations: [ShotAnnotationGQL!]! annotations: [ShotAnnotationGQL!]!
falsePositiveScore: Float falsePositiveScore: Float
video: VideoGQL
} }
""" """
@@ -180,6 +198,7 @@ type CueObjectFeaturesGQL {
cueObjectAngle: Float cueObjectAngle: Float
cueBallSpeed: Float cueBallSpeed: Float
shotDirection: ShotDirectionEnum shotDirection: ShotDirectionEnum
spinType: SpinTypeEnum
} }
type PocketingIntentionFeaturesGQL { type PocketingIntentionFeaturesGQL {
@@ -220,6 +239,7 @@ type ShotAnnotationGQL {
type: ShotAnnotationTypeGQL! type: ShotAnnotationTypeGQL!
creator: UserGQL! creator: UserGQL!
notes: String! notes: String!
errorDefault: Boolean!
createdAt: DateTime createdAt: DateTime
updatedAt: DateTime updatedAt: DateTime
} }
@@ -229,15 +249,6 @@ type ShotAnnotationTypeGQL {
name: String! name: String!
} }
type UserPlayTimeGQL {
totalSeconds: Float!
}
type VideoHistoryGQL {
videos: [VideoGQL!]!
pageInfo: PageInfoGQL!
}
type VideoGQL { type VideoGQL {
id: Int! id: Int!
owner: UserGQL owner: UserGQL
@@ -255,6 +266,7 @@ 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!]!
@@ -356,6 +368,8 @@ type IntPoint2D {
type VideoProcessingGQL { type VideoProcessingGQL {
errors: [VideoProcessingErrorGQL!]! errors: [VideoProcessingErrorGQL!]!
status: ProcessingStatusEnum!
statuses: [VideoProcessingStatusGQL!]!
} }
type VideoProcessingErrorGQL { type VideoProcessingErrorGQL {
@@ -364,6 +378,44 @@ type VideoProcessingErrorGQL {
endSegmentIndex: Int endSegmentIndex: Int
} }
enum ProcessingStatusEnum {
STARTED
FAILED
SUCCEEDED
SUSPENDED
CREATED
QUEUED
RUNNING
REEXTRACTING_FEATURES
}
type VideoProcessingStatusGQL {
status: ProcessingStatusEnum!
appVersion: String!
sequenceId: Int!
createdAt: DateTime
updatedAt: DateTime
}
input GetShotsPagination {
createdAfter: CreatedAfter!
startFrameAfter: Int!
}
input CreatedAfter @oneOf {
videoId: Int
createdAt: DateTime
}
type UserPlayTimeGQL {
totalSeconds: Float!
}
type VideoHistoryGQL {
videos: [VideoGQL!]!
pageInfo: PageInfoGQL!
}
type PageInfoGQL { type PageInfoGQL {
hasNextPage: Boolean! hasNextPage: Boolean!
endCursor: String endCursor: String
@@ -380,10 +432,25 @@ type TagGQL {
group: String group: String
} }
"""
The `JSON` scalar type represents JSON values as specified by [ECMA-404](https://ecma-international.org/wp-content/uploads/ECMA-404_2nd_edition_december_2017.pdf).
"""
scalar JSON
@specifiedBy(
url: "https://ecma-international.org/wp-content/uploads/ECMA-404_2nd_edition_december_2017.pdf"
)
type Mutation { type Mutation {
createBucketSet(params: CreateBucketSetInput!): BucketSetGQL! createBucketSet(params: CreateBucketSetInput!): BucketSetGQL!
setLoggerLevel(path: String!, level: String!): Boolean! setLoggerLevel(path: String!, level: String!): Boolean!
getProfileImageUploadLink(fileExt: String = ".png"): GetUploadLinkReturn! addAnnotationToShot(
shotId: Int!
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!
@@ -405,7 +472,44 @@ input CreateBucketSetInput {
buckets: [BucketInputGQL!]! buckets: [BucketInputGQL!]!
} }
type GetUploadLinkReturn { type AddShotAnnotationReturn {
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]!
} }
@@ -415,6 +519,14 @@ type Header {
value: String! value: String!
} }
type GetProfileUploadLinkErrors {
error: TooManyProfileImageUploadsErr!
}
type TooManyProfileImageUploadsErr {
linksRequested: Int!
}
type CreateUploadStreamReturn { type CreateUploadStreamReturn {
videoId: Int! videoId: Int!
} }
@@ -424,7 +536,7 @@ input VideoMetadataInput {
startTime: DateTime = null startTime: DateTime = null
endTime: DateTime = null endTime: DateTime = null
gameType: String = null gameType: String = null
tableSize: String = null tableSize: Float = null
uploadStreamMetadataInput: UploadStreamMetadataInput = null uploadStreamMetadataInput: UploadStreamMetadataInput = null
lastIntendedSegmentBound: Int = null lastIntendedSegmentBound: Int = null
streamSegmentType: StreamSegmentTypeEnum = null streamSegmentType: StreamSegmentTypeEnum = null
@@ -455,3 +567,38 @@ input VideoResolution {
width: Int! width: Int!
height: Int! height: Int!
} }
type GetUploadLinkReturn {
value: UploadLinkGetUploadLinkErrors!
stream: UploadStreamGQL
}
union UploadLinkGetUploadLinkErrors = UploadLink | GetUploadLinkErrors
type GetUploadLinkErrors {
error: MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailedErrNoInitForChunkedUploadErrTooManyProfileImageUploadsErr!
}
union MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailedErrNoInitForChunkedUploadErrTooManyProfileImageUploadsErr =
MustHaveSetForUploadLinkErr
| SegmentAlreadyUploadedErr
| ProcessingFailedErr
| NoInitForChunkedUploadErr
| TooManyProfileImageUploadsErr
type MustHaveSetForUploadLinkErr {
resolution: Boolean
framesPerSecond: Boolean
}
type SegmentAlreadyUploadedErr {
segmentId: Int!
}
type ProcessingFailedErr {
processing: VideoProcessingGQL!
}
type NoInitForChunkedUploadErr {
segmentType: StreamSegmentTypeEnum!
}