Merge pull request 'Add support for getRuns' (#139) from mk/runs-qb into master

Reviewed-on: #139
This commit is contained in:
countablecloud 2024-11-19 15:06:15 -07:00
commit c3c74379fb
2 changed files with 104 additions and 39 deletions

View File

@ -155,6 +155,11 @@ export type DateRangeFilter = {
lessThanInclusive?: Scalars["Boolean"]["input"];
};
export type DatetimeOrdering = {
descending?: Scalars["Boolean"]["input"];
startingAt?: InputMaybe<Scalars["DateTime"]["input"]>;
};
export type DatetimeRangeAggregationInput = {
endDatetime?: InputMaybe<Scalars["DateTime"]["input"]>;
feature?: Scalars["String"]["input"];
@ -162,11 +167,6 @@ export type DatetimeRangeAggregationInput = {
startDatetime?: InputMaybe<Scalars["DateTime"]["input"]>;
};
export type DatetimeShotOrdering = {
descending?: Scalars["Boolean"]["input"];
startingAt?: InputMaybe<Scalars["DateTime"]["input"]>;
};
export type DeployedConfigGql = {
__typename?: "DeployedConfigGQL";
allowNewUsers: Scalars["Boolean"]["output"];
@ -1878,6 +1878,11 @@ export type FilterInput =
videoId: Array<Scalars["Int"]["input"]>;
};
export type FloatOrdering = {
descending?: Scalars["Boolean"]["input"];
startingAt?: InputMaybe<Scalars["Float"]["input"]>;
};
export type FloatRangeFilter = {
greaterThan?: InputMaybe<Scalars["Float"]["input"]>;
greaterThanEqualTo?: InputMaybe<Scalars["Float"]["input"]>;
@ -1887,11 +1892,6 @@ export type FloatRangeFilter = {
lessThanInclusive?: Scalars["Boolean"]["input"];
};
export type FloatShotOrdering = {
descending?: Scalars["Boolean"]["input"];
startingAt?: InputMaybe<Scalars["Float"]["input"]>;
};
export type GetProfileUploadLinkErrors = {
__typename?: "GetProfileUploadLinkErrors";
error: TooManyProfileImageUploadsErr;
@ -1902,6 +1902,17 @@ export type GetProfileUploadLinkReturn = {
value: UploadLinkGetProfileUploadLinkErrors;
};
export type GetRunsOrdering = {
orderings: Array<RunsOrderingComponent>;
};
export type GetRunsResult = {
__typename?: "GetRunsResult";
count?: Maybe<Scalars["Int"]["output"]>;
runIds: Array<Scalars["Int"]["output"]>;
runs: Array<RunGql>;
};
export type GetShotsOrdering = {
orderings: Array<ShotsOrderingComponent>;
};
@ -1964,17 +1975,17 @@ export type InitUploadAlreadyCompletedErr = {
segmentType: StreamSegmentTypeEnum;
};
export type IntOrdering = {
descending?: Scalars["Boolean"]["input"];
startingAt?: InputMaybe<Scalars["Int"]["input"]>;
};
export type IntPoint2D = {
__typename?: "IntPoint2D";
x: Scalars["Int"]["output"];
y: Scalars["Int"]["output"];
};
export type IntShotOrdering = {
descending?: Scalars["Boolean"]["input"];
startingAt?: InputMaybe<Scalars["Int"]["input"]>;
};
export type MakePercentageIntervalGql = {
__typename?: "MakePercentageIntervalGQL";
elapsedTime: Scalars["Float"]["output"];
@ -2186,6 +2197,7 @@ export type Query = {
getMedals: RequestedMedalsGql;
getOrderedShots: GetShotsResult;
getPlayTime: UserPlayTimeGql;
getRuns: GetRunsResult;
getShotAnnotationTypes: Array<ShotAnnotationTypeGql>;
getShots: Array<ShotGql>;
getShotsByIds: Array<ShotGql>;
@ -2238,6 +2250,14 @@ export type QueryGetPlayTimeArgs = {
userId: Scalars["Int"]["input"];
};
export type QueryGetRunsArgs = {
countRespectsLimit?: Scalars["Boolean"]["input"];
filterInput: FilterInput;
limit?: Scalars["Int"]["input"];
runIds?: InputMaybe<Array<Scalars["Int"]["input"]>>;
runsOrdering?: InputMaybe<GetRunsOrdering>;
};
export type QueryGetShotAnnotationTypesArgs = {
errorTypes?: InputMaybe<Scalars["Boolean"]["input"]>;
};
@ -2330,6 +2350,20 @@ export type RequestedMedalsGql = {
totalMakes1000?: Maybe<MedalGql>;
};
export type RunGql = {
__typename?: "RunGQL";
id: Scalars["Int"]["output"];
runLength: Scalars["Int"]["output"];
shots: Array<ShotGql>;
userId: Scalars["Int"]["output"];
videoId: Scalars["Int"]["output"];
};
export type RunsOrderingComponent =
| { runLength: IntOrdering; videoCreation?: never; videoId?: never }
| { runLength?: never; videoCreation: DatetimeOrdering; videoId?: never }
| { runLength?: never; videoCreation?: never; videoId: IntOrdering };
export type SegmentAlreadyUploadedErr = {
__typename?: "SegmentAlreadyUploadedErr";
segmentId: Scalars["Int"]["output"];
@ -2409,7 +2443,7 @@ export type ShotGql = {
export type ShotsOrderingComponent =
| {
marginOfError: FloatShotOrdering;
marginOfError: FloatOrdering;
runLength?: never;
startFrame?: never;
videoCreation?: never;
@ -2417,7 +2451,7 @@ export type ShotsOrderingComponent =
}
| {
marginOfError?: never;
runLength: IntShotOrdering;
runLength: IntOrdering;
startFrame?: never;
videoCreation?: never;
videoId?: never;
@ -2425,7 +2459,7 @@ export type ShotsOrderingComponent =
| {
marginOfError?: never;
runLength?: never;
startFrame: IntShotOrdering;
startFrame: IntOrdering;
videoCreation?: never;
videoId?: never;
}
@ -2433,7 +2467,7 @@ export type ShotsOrderingComponent =
marginOfError?: never;
runLength?: never;
startFrame?: never;
videoCreation: DatetimeShotOrdering;
videoCreation: DatetimeOrdering;
videoId?: never;
}
| {
@ -2441,7 +2475,7 @@ export type ShotsOrderingComponent =
runLength?: never;
startFrame?: never;
videoCreation?: never;
videoId: IntShotOrdering;
videoId: IntOrdering;
};
export type SpinTypeCountsGql = {

View File

@ -10,6 +10,13 @@ type Query {
intervalDuration: Int! = 300
): [MakePercentageIntervalGQL!]!
getMedals(scope: MedalScope!, userId: Int = null): RequestedMedalsGQL!
getRuns(
filterInput: FilterInput!
runIds: [Int!] = null
runsOrdering: GetRunsOrdering = null
limit: Int! = 500
countRespectsLimit: Boolean! = false
): GetRunsResult!
getOrderedShots(
filterInput: FilterInput!
ids: [Int!] = null
@ -308,10 +315,18 @@ input MedalScope @oneOf {
interval: TimeInterval
}
type GetShotsResult {
shots: [ShotGQL!]!
type GetRunsResult {
runs: [RunGQL!]!
count: Int
ids: [Int!]!
runIds: [Int!]!
}
type RunGQL {
id: Int!
runLength: Int!
videoId: Int!
userId: Int!
shots: [ShotGQL!]!
}
type ShotGQL {
@ -569,33 +584,49 @@ type VideoProcessingStatusGQL {
updatedAt: DateTime
}
input GetRunsOrdering {
orderings: [RunsOrderingComponent!]!
}
input RunsOrderingComponent @oneOf {
runLength: IntOrdering
videoId: IntOrdering
videoCreation: DatetimeOrdering
}
input IntOrdering {
descending: Boolean! = true
startingAt: Int = null
}
input DatetimeOrdering {
descending: Boolean! = true
startingAt: DateTime = null
}
type GetShotsResult {
shots: [ShotGQL!]!
count: Int
ids: [Int!]!
}
input GetShotsOrdering {
orderings: [ShotsOrderingComponent!]!
}
input ShotsOrderingComponent @oneOf {
videoCreation: DatetimeShotOrdering
marginOfError: FloatShotOrdering
videoId: IntShotOrdering
startFrame: IntShotOrdering
runLength: IntShotOrdering
videoCreation: DatetimeOrdering
marginOfError: FloatOrdering
videoId: IntOrdering
startFrame: IntOrdering
runLength: IntOrdering
}
input DatetimeShotOrdering {
descending: Boolean! = true
startingAt: DateTime = null
}
input FloatShotOrdering {
input FloatOrdering {
descending: Boolean! = true
startingAt: Float = null
}
input IntShotOrdering {
descending: Boolean! = true
startingAt: Int = null
}
input GetShotsPagination {
createdAfter: CreatedAfter!
startFrameAfter: Int!