Compare commits
61 Commits
micah/add-
...
kat/expose
Author | SHA1 | Date | |
---|---|---|---|
f9b02f65e0 | |||
ba36bc709c | |||
4005416233 | |||
db4a6315cd | |||
af38fdea64 | |||
172df69340 | |||
a030a0ef16 | |||
7a6cc2739f | |||
41c9701e18 | |||
16e79ed608 | |||
f401e1879b | |||
72b451d322 | |||
5350c46e0a | |||
1f5c5774e1 | |||
3b29502e7e | |||
abc7e9fd05 | |||
dd5ce77102 | |||
dabaa3d1e1 | |||
a6604a3a6d | |||
09a3e0e294 | |||
f20ca53a2a | |||
a2b912500c | |||
7de3d196ba | |||
6d5669aaf8 | |||
2c583509a2 | |||
3480637600 | |||
f4665f51b1 | |||
810212dc12 | |||
c3210df517 | |||
9f5c354433 | |||
23d9fef2b1 | |||
df3087de7d | |||
5dd8318dab | |||
56c8bcce20 | |||
1c4961db5b | |||
5e0d01ea5b | |||
e8938621fc | |||
8c8dcdd8e1 | |||
5085c9af90 | |||
85bc743c8e | |||
b8efa644e3 | |||
c18628a4ca | |||
535e24c9c2 | |||
04308b1003 | |||
43c626141e | |||
c49266e4c1 | |||
6677b9232f | |||
76e792be88 | |||
5eac3d9d40 | |||
64593f09b7 | |||
e20b68799f | |||
378878967a | |||
251ebe7056 | |||
615e4d5467 | |||
a4f602d651 | |||
c48512fc45 | |||
d75822c465 | |||
4feeba5150 | |||
e1237363f0 | |||
b1550b31c5 | |||
81b9fd9f12 |
837
src/index.tsx
837
src/index.tsx
File diff suppressed because it is too large
Load Diff
@@ -4,5 +4,6 @@ query getDeployedConfig {
|
|||||||
devMode
|
devMode
|
||||||
environment
|
environment
|
||||||
firebase
|
firebase
|
||||||
|
minimumAllowedAppVersion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -23,6 +23,7 @@ query GetFeed(
|
|||||||
stream {
|
stream {
|
||||||
isCompleted
|
isCompleted
|
||||||
}
|
}
|
||||||
|
tableSize
|
||||||
tags {
|
tags {
|
||||||
tagClasses {
|
tagClasses {
|
||||||
name
|
name
|
||||||
|
@@ -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
|
||||||
@@ -12,7 +14,11 @@ query GetShots(
|
|||||||
$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
|
||||||
@@ -20,6 +26,15 @@ query GetShots(
|
|||||||
user {
|
user {
|
||||||
id
|
id
|
||||||
}
|
}
|
||||||
|
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) {
|
||||||
|
@@ -1,11 +1,22 @@
|
|||||||
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!) {
|
||||||
|
@@ -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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -138,12 +142,58 @@ query GetVideo($videoId: Int!) {
|
|||||||
playlist {
|
playlist {
|
||||||
segmentDurations
|
segmentDurations
|
||||||
}
|
}
|
||||||
|
homographyHistory {
|
||||||
|
frameIndex
|
||||||
|
crop {
|
||||||
|
left
|
||||||
|
top
|
||||||
|
width
|
||||||
|
height
|
||||||
|
}
|
||||||
|
pockets {
|
||||||
|
left
|
||||||
|
top
|
||||||
|
width
|
||||||
|
height
|
||||||
|
}
|
||||||
|
sourcePoints {
|
||||||
|
topLeft {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
topSide {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
topRight {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
bottomLeft {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
bottomSide {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
bottomRight {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
stream {
|
stream {
|
||||||
|
streamSegmentType
|
||||||
segments {
|
segments {
|
||||||
segmentIndex
|
segmentIndex
|
||||||
endFrameIndex
|
endFrameIndex
|
||||||
framesPerSecond
|
framesPerSecond
|
||||||
}
|
}
|
||||||
|
resolution {
|
||||||
|
width
|
||||||
|
height
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -166,3 +216,24 @@ query GetMedianRunForVideo($videoId: Int!) {
|
|||||||
medianRun
|
medianRun
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
query GetVideoForClipTimes($videoId: Int!) {
|
||||||
|
getVideo(videoId: $videoId) {
|
||||||
|
id
|
||||||
|
framesPerSecond
|
||||||
|
playlist {
|
||||||
|
segmentDurations
|
||||||
|
}
|
||||||
|
stream {
|
||||||
|
id
|
||||||
|
streamSegmentType
|
||||||
|
segments {
|
||||||
|
uploaded
|
||||||
|
valid
|
||||||
|
segmentIndex
|
||||||
|
endFrameIndex
|
||||||
|
framesPerSecond
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -6,22 +6,59 @@ 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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mutation SetSegmentDuration(
|
mutation SetSegmentDuration(
|
||||||
@@ -72,6 +109,7 @@ query GetUploadStreamsWithDetails(
|
|||||||
isCompleted
|
isCompleted
|
||||||
lastIntendedSegmentBound
|
lastIntendedSegmentBound
|
||||||
uploadCompletionCursor
|
uploadCompletionCursor
|
||||||
|
uploadsCompleted
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pageInfo {
|
pageInfo {
|
||||||
|
199
src/schema.gql
199
src/schema.gql
@@ -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(
|
||||||
@@ -24,7 +29,8 @@ type Query {
|
|||||||
after: String = null
|
after: String = null
|
||||||
filters: VideoFilterInput = null
|
filters: VideoFilterInput = null
|
||||||
): VideoHistoryGQL!
|
): VideoHistoryGQL!
|
||||||
getVideo(videoId: Int!): VideoGQL!
|
getUserTags: [TagGQL!]!
|
||||||
|
getVideo(videoId: Int!, debuggingJson: JSON = null): VideoGQL!
|
||||||
getVideos(videoIds: [Int!]!): [VideoGQL!]!
|
getVideos(videoIds: [Int!]!): [VideoGQL!]!
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,15 +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
|
||||||
|
cueSpeedAfterObject: RangeFilter
|
||||||
|
spinType: [String!]
|
||||||
|
falsePositiveScore: RangeFilter
|
||||||
}
|
}
|
||||||
|
|
||||||
input RangeFilter {
|
input RangeFilter {
|
||||||
lessThan: Float = null
|
lessThan: Float = null
|
||||||
greaterThanEqualTo: Float = null
|
greaterThanEqualTo: Float = null
|
||||||
|
greaterThan: Float = null
|
||||||
|
includeOnNone: Boolean! = false
|
||||||
|
lessThanInclusive: Boolean! = false
|
||||||
|
greaterThanInclusive: Boolean! = true
|
||||||
}
|
}
|
||||||
|
|
||||||
enum PocketEnum {
|
enum PocketEnum {
|
||||||
@@ -141,6 +156,7 @@ type DeployedConfigGQL {
|
|||||||
firebase: Boolean!
|
firebase: Boolean!
|
||||||
devMode: Boolean!
|
devMode: Boolean!
|
||||||
environment: String!
|
environment: String!
|
||||||
|
minimumAllowedAppVersion: String!
|
||||||
}
|
}
|
||||||
|
|
||||||
type MakePercentageIntervalGQL {
|
type MakePercentageIntervalGQL {
|
||||||
@@ -161,6 +177,8 @@ type ShotGQL {
|
|||||||
serializedShotPaths: SerializedShotPathsGQL
|
serializedShotPaths: SerializedShotPathsGQL
|
||||||
user: UserGQL
|
user: UserGQL
|
||||||
annotations: [ShotAnnotationGQL!]!
|
annotations: [ShotAnnotationGQL!]!
|
||||||
|
falsePositiveScore: Float
|
||||||
|
video: VideoGQL
|
||||||
}
|
}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@@ -213,6 +231,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
|
||||||
}
|
}
|
||||||
@@ -222,15 +241,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
|
||||||
@@ -248,6 +258,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!]!
|
||||||
@@ -269,6 +280,8 @@ type UploadStreamGQL {
|
|||||||
createdAt: DateTime!
|
createdAt: DateTime!
|
||||||
updatedAt: DateTime!
|
updatedAt: DateTime!
|
||||||
segments: [UploadSegmentGQL!]!
|
segments: [UploadSegmentGQL!]!
|
||||||
|
resolution: VideoResolutionGQL!
|
||||||
|
streamSegmentType: StreamSegmentTypeEnum!
|
||||||
}
|
}
|
||||||
|
|
||||||
enum InitPlaylistUploadStatusEnum {
|
enum InitPlaylistUploadStatusEnum {
|
||||||
@@ -291,6 +304,16 @@ type UploadSegmentGQL {
|
|||||||
linksRequested: Int!
|
linksRequested: Int!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type VideoResolutionGQL {
|
||||||
|
width: Int
|
||||||
|
height: Int
|
||||||
|
}
|
||||||
|
|
||||||
|
enum StreamSegmentTypeEnum {
|
||||||
|
FRAGMENTED_MP4
|
||||||
|
RB_CHUNKED_MP4
|
||||||
|
}
|
||||||
|
|
||||||
type HLSPlaylistGQL {
|
type HLSPlaylistGQL {
|
||||||
videoId: Int!
|
videoId: Int!
|
||||||
m3u8Text: String!
|
m3u8Text: String!
|
||||||
@@ -337,6 +360,8 @@ type IntPoint2D {
|
|||||||
|
|
||||||
type VideoProcessingGQL {
|
type VideoProcessingGQL {
|
||||||
errors: [VideoProcessingErrorGQL!]!
|
errors: [VideoProcessingErrorGQL!]!
|
||||||
|
status: ProcessingStatusEnum!
|
||||||
|
statuses: [VideoProcessingStatusGQL!]!
|
||||||
}
|
}
|
||||||
|
|
||||||
type VideoProcessingErrorGQL {
|
type VideoProcessingErrorGQL {
|
||||||
@@ -345,6 +370,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
|
||||||
@@ -355,10 +418,31 @@ input VideoFilterInput {
|
|||||||
requireCursorCompletion: Boolean! = true
|
requireCursorCompletion: Boolean! = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type TagGQL {
|
||||||
|
name: String!
|
||||||
|
id: Int!
|
||||||
|
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!
|
||||||
@@ -380,7 +464,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]!
|
||||||
}
|
}
|
||||||
@@ -390,6 +511,14 @@ type Header {
|
|||||||
value: String!
|
value: String!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type GetProfileUploadLinkErrors {
|
||||||
|
error: TooManyProfileImageUploadsErr!
|
||||||
|
}
|
||||||
|
|
||||||
|
type TooManyProfileImageUploadsErr {
|
||||||
|
linksRequested: Int!
|
||||||
|
}
|
||||||
|
|
||||||
type CreateUploadStreamReturn {
|
type CreateUploadStreamReturn {
|
||||||
videoId: Int!
|
videoId: Int!
|
||||||
}
|
}
|
||||||
@@ -399,7 +528,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
|
||||||
@@ -426,12 +555,42 @@ enum DeviceTypeEnum {
|
|||||||
BROWSER
|
BROWSER
|
||||||
}
|
}
|
||||||
|
|
||||||
enum StreamSegmentTypeEnum {
|
|
||||||
FRAGMENTED_MP4
|
|
||||||
RB_CHUNKED_MP4
|
|
||||||
}
|
|
||||||
|
|
||||||
input VideoResolution {
|
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!
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user