Compare commits
31 Commits
dean/camer
...
dean/feed-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d428a8caa2 | ||
| 48207e12ee | |||
|
|
1d403f8155 | ||
| 6758f3e77a | |||
|
|
79979b001a | ||
| 49fbebd0c2 | |||
| 9219451c8d | |||
| 42601f9587 | |||
| acfb750265 | |||
| ffa96a24c3 | |||
| 5b73dd3a83 | |||
| d1bc29b41b | |||
| 853769e183 | |||
| 84524d165d | |||
|
|
f4c5fcedd6 | ||
| 07ca121a3e | |||
|
|
66fb4d3dcc | ||
| 5293576947 | |||
|
|
0c1afbcc76 | ||
| 655209e1c6 | |||
| c9576cf405 | |||
| 0c0cd7a7bb | |||
|
|
53fa982bcf | ||
|
|
7ec6ec9193 | ||
|
|
0ce333525c | ||
| 48b647636e | |||
|
|
d1ed5b308b | ||
| 079e4e8719 | |||
| af68bc3c60 | |||
| f12d2c5a1b | |||
| 4e3f649a2c |
650
src/index.tsx
650
src/index.tsx
File diff suppressed because it is too large
Load Diff
@@ -42,6 +42,8 @@ fragment VideoCardFields on VideoGQL {
|
|||||||
id
|
id
|
||||||
lastIntendedSegmentBound
|
lastIntendedSegmentBound
|
||||||
streamSegmentType
|
streamSegmentType
|
||||||
|
isCompleted
|
||||||
|
lastSegmentUploadedAt
|
||||||
}
|
}
|
||||||
tableSize
|
tableSize
|
||||||
pocketSize
|
pocketSize
|
||||||
@@ -146,5 +148,6 @@ query GetVideoFeed(
|
|||||||
endCursor
|
endCursor
|
||||||
}
|
}
|
||||||
hasFollowing
|
hasFollowing
|
||||||
|
followingCount
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,3 +30,56 @@ query GetRunsLeaderboard($interval: TimeInterval, $when: DateTime) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
query GetDrillRunLeaderboard(
|
||||||
|
$drillTag: String!
|
||||||
|
$interval: TimeInterval
|
||||||
|
$limit: Int = 50
|
||||||
|
$tableSizeMin: Float
|
||||||
|
$tableSizeMax: Float
|
||||||
|
$pocketSizeMin: Float
|
||||||
|
$pocketSizeMax: Float
|
||||||
|
) {
|
||||||
|
getDrillRunLeaderboard(
|
||||||
|
drillTag: $drillTag
|
||||||
|
interval: $interval
|
||||||
|
limit: $limit
|
||||||
|
tableSizeMin: $tableSizeMin
|
||||||
|
tableSizeMax: $tableSizeMax
|
||||||
|
pocketSizeMin: $pocketSizeMin
|
||||||
|
pocketSizeMax: $pocketSizeMax
|
||||||
|
) {
|
||||||
|
entries {
|
||||||
|
id
|
||||||
|
runLength
|
||||||
|
videoId
|
||||||
|
video {
|
||||||
|
tableSize
|
||||||
|
pocketSize
|
||||||
|
}
|
||||||
|
user {
|
||||||
|
id
|
||||||
|
username
|
||||||
|
profileImageUri
|
||||||
|
}
|
||||||
|
}
|
||||||
|
youRun {
|
||||||
|
id
|
||||||
|
runLength
|
||||||
|
videoId
|
||||||
|
}
|
||||||
|
youRank
|
||||||
|
totalPlayers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
query GetMyDrillRuns($drillTag: String!, $limit: Int = 50) {
|
||||||
|
getMyDrillRuns(drillTag: $drillTag, limit: $limit) {
|
||||||
|
id
|
||||||
|
runLength
|
||||||
|
videoId
|
||||||
|
video {
|
||||||
|
createdAt
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -44,12 +44,20 @@ query GetAvailableSubscriptionOptions {
|
|||||||
active
|
active
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
appleIap {
|
||||||
|
enabled
|
||||||
|
proMonthlyProductId
|
||||||
|
productIds
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
query GetSubscriptionStatus {
|
query GetSubscriptionStatus {
|
||||||
getUserSubscriptionStatus {
|
getUserSubscriptionStatus {
|
||||||
hasActiveSubscription
|
hasActiveSubscription
|
||||||
|
entitlementSource
|
||||||
|
entitlementStartsAt
|
||||||
|
entitlementEndsAt
|
||||||
subscriptionStatus
|
subscriptionStatus
|
||||||
currentPeriodStart
|
currentPeriodStart
|
||||||
currentPeriodEnd
|
currentPeriodEnd
|
||||||
@@ -59,9 +67,35 @@ query GetSubscriptionStatus {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
query GetAppleAppAccountToken {
|
||||||
|
getAppleAppAccountToken
|
||||||
|
}
|
||||||
|
|
||||||
|
mutation SyncAppleSubscription($signedTransactionInfo: String!) {
|
||||||
|
syncAppleSubscription(
|
||||||
|
input: { signedTransactionInfo: $signedTransactionInfo }
|
||||||
|
) {
|
||||||
|
ok
|
||||||
|
errorCode
|
||||||
|
errorMessage
|
||||||
|
hasActiveSubscription
|
||||||
|
entitlementSource
|
||||||
|
entitlementStartsAt
|
||||||
|
entitlementEndsAt
|
||||||
|
appleStatus
|
||||||
|
originalTransactionId
|
||||||
|
latestTransactionId
|
||||||
|
productId
|
||||||
|
expiresAt
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
mutation CancelSubscription {
|
mutation CancelSubscription {
|
||||||
cancelSubscription {
|
cancelSubscription {
|
||||||
hasActiveSubscription
|
hasActiveSubscription
|
||||||
|
entitlementSource
|
||||||
|
entitlementStartsAt
|
||||||
|
entitlementEndsAt
|
||||||
subscriptionStatus
|
subscriptionStatus
|
||||||
currentPeriodStart
|
currentPeriodStart
|
||||||
currentPeriodEnd
|
currentPeriodEnd
|
||||||
|
|||||||
@@ -9,6 +9,12 @@ fragment PlayerSummaryFields on PlayerSummaryGQL {
|
|||||||
makePercentage
|
makePercentage
|
||||||
score
|
score
|
||||||
longestRun
|
longestRun
|
||||||
|
runLengths
|
||||||
|
spinTypeBreakdown {
|
||||||
|
draw
|
||||||
|
center
|
||||||
|
follow
|
||||||
|
}
|
||||||
averageDifficulty
|
averageDifficulty
|
||||||
averageTimeBetweenShots
|
averageTimeBetweenShots
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -177,6 +177,7 @@ mutation editUser(
|
|||||||
$fargoRating: Int
|
$fargoRating: Int
|
||||||
$videosPrivateByDefault: Boolean
|
$videosPrivateByDefault: Boolean
|
||||||
$agreesToMarketing: Boolean
|
$agreesToMarketing: Boolean
|
||||||
|
$bio: String
|
||||||
) {
|
) {
|
||||||
editUser(
|
editUser(
|
||||||
input: {
|
input: {
|
||||||
@@ -184,6 +185,7 @@ mutation editUser(
|
|||||||
fargoRating: $fargoRating
|
fargoRating: $fargoRating
|
||||||
videosPrivateByDefault: $videosPrivateByDefault
|
videosPrivateByDefault: $videosPrivateByDefault
|
||||||
agreesToMarketing: $agreesToMarketing
|
agreesToMarketing: $agreesToMarketing
|
||||||
|
bio: $bio
|
||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
id
|
id
|
||||||
@@ -193,6 +195,7 @@ mutation editUser(
|
|||||||
updatedAt
|
updatedAt
|
||||||
videosPrivateByDefault
|
videosPrivateByDefault
|
||||||
agreesToMarketing
|
agreesToMarketing
|
||||||
|
bio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -206,6 +209,7 @@ fragment UserFragment on UserGQL {
|
|||||||
username
|
username
|
||||||
isAdmin
|
isAdmin
|
||||||
profileImageUri
|
profileImageUri
|
||||||
|
bio
|
||||||
fargoRating
|
fargoRating
|
||||||
activeVideoId
|
activeVideoId
|
||||||
createdAt
|
createdAt
|
||||||
|
|||||||
104
src/schema.gql
104
src/schema.gql
@@ -11,8 +11,6 @@ type Query {
|
|||||||
myChallengeInvitations: [ChallengeInvitation!]!
|
myChallengeInvitations: [ChallengeInvitation!]!
|
||||||
ruleSets: [RuleSet!]!
|
ruleSets: [RuleSet!]!
|
||||||
myChallengeEntries: [ChallengeEntry!]!
|
myChallengeEntries: [ChallengeEntry!]!
|
||||||
getVenues: [VenueGQL!]!
|
|
||||||
getActiveClaim: CameraClaimGQL
|
|
||||||
getDeployedConfig: DeployedConfigGQL!
|
getDeployedConfig: DeployedConfigGQL!
|
||||||
waitFor(duration: Float!): Float!
|
waitFor(duration: Float!): Float!
|
||||||
getFeedVideos(
|
getFeedVideos(
|
||||||
@@ -33,6 +31,16 @@ type Query {
|
|||||||
limit: Int! = 50
|
limit: Int! = 50
|
||||||
requiredTags: [String!] = null
|
requiredTags: [String!] = null
|
||||||
): RunLeaderboardGQL!
|
): RunLeaderboardGQL!
|
||||||
|
getDrillRunLeaderboard(
|
||||||
|
drillTag: String!
|
||||||
|
interval: TimeInterval = null
|
||||||
|
limit: Int! = 50
|
||||||
|
tableSizeMin: Float = null
|
||||||
|
tableSizeMax: Float = null
|
||||||
|
pocketSizeMin: Float = null
|
||||||
|
pocketSizeMax: Float = null
|
||||||
|
): DrillRunLeaderboardGQL!
|
||||||
|
getMyDrillRuns(drillTag: String!, limit: Int! = 50): [RunGQL!]!
|
||||||
getMakesLeaderboard(
|
getMakesLeaderboard(
|
||||||
interval: TimeInterval = null
|
interval: TimeInterval = null
|
||||||
when: DateTime = null
|
when: DateTime = null
|
||||||
@@ -100,6 +108,7 @@ type Query {
|
|||||||
): UserRelationshipsResult!
|
): UserRelationshipsResult!
|
||||||
getAvailableSubscriptionOptions: StripeSubscriptionOptionsGQL!
|
getAvailableSubscriptionOptions: StripeSubscriptionOptionsGQL!
|
||||||
getUserSubscriptionStatus: UserSubscriptionStatusGQL!
|
getUserSubscriptionStatus: UserSubscriptionStatusGQL!
|
||||||
|
getAppleAppAccountToken: String!
|
||||||
getQuotaStatus: QuotaStatusGQL!
|
getQuotaStatus: QuotaStatusGQL!
|
||||||
getPlayTime(userId: Int!, filters: VideoFilterInput = null): UserPlayTimeGQL!
|
getPlayTime(userId: Int!, filters: VideoFilterInput = null): UserPlayTimeGQL!
|
||||||
getUserVideos(
|
getUserVideos(
|
||||||
@@ -347,6 +356,7 @@ type UserGQL {
|
|||||||
activeVideoId: Int
|
activeVideoId: Int
|
||||||
stripeCustomerId: String
|
stripeCustomerId: String
|
||||||
profileImageUri: String
|
profileImageUri: String
|
||||||
|
bio: String
|
||||||
createdAt: DateTime
|
createdAt: DateTime
|
||||||
updatedAt: DateTime
|
updatedAt: DateTime
|
||||||
videosPrivateByDefault: Boolean
|
videosPrivateByDefault: Boolean
|
||||||
@@ -520,6 +530,7 @@ type UploadStreamGQL {
|
|||||||
initPlaylistUploadStatus: InitPlaylistUploadStatusEnum
|
initPlaylistUploadStatus: InitPlaylistUploadStatusEnum
|
||||||
lowestUnuploadedSegmentIndex: Int!
|
lowestUnuploadedSegmentIndex: Int!
|
||||||
uploadCompletionCursor: Int!
|
uploadCompletionCursor: Int!
|
||||||
|
lastSegmentUploadedAt: DateTime
|
||||||
errors: [StreamErrorGQL!]!
|
errors: [StreamErrorGQL!]!
|
||||||
createdAt: DateTime!
|
createdAt: DateTime!
|
||||||
updatedAt: DateTime!
|
updatedAt: DateTime!
|
||||||
@@ -679,50 +690,16 @@ type PlayerSummaryGQL {
|
|||||||
makePercentage: Float!
|
makePercentage: Float!
|
||||||
score: Int
|
score: Int
|
||||||
longestRun: Int!
|
longestRun: Int!
|
||||||
|
runLengths: [Int!]!
|
||||||
|
spinTypeBreakdown: SpinTypeBreakdownGQL!
|
||||||
averageDifficulty: Float
|
averageDifficulty: Float
|
||||||
averageTimeBetweenShots: Float
|
averageTimeBetweenShots: Float
|
||||||
}
|
}
|
||||||
|
|
||||||
type VenueGQL {
|
type SpinTypeBreakdownGQL {
|
||||||
id: Int!
|
draw: Int!
|
||||||
name: String!
|
center: Int!
|
||||||
latitude: Float
|
follow: Int!
|
||||||
longitude: Float
|
|
||||||
cameras: [VenueCameraGQL!]!
|
|
||||||
}
|
|
||||||
|
|
||||||
type VenueCameraGQL {
|
|
||||||
id: Int!
|
|
||||||
venueId: Int!
|
|
||||||
tableLabel: String!
|
|
||||||
enabled: Boolean!
|
|
||||||
isAvailable: Boolean!
|
|
||||||
}
|
|
||||||
|
|
||||||
type CameraClaimGQL {
|
|
||||||
id: Int!
|
|
||||||
cameraId: Int!
|
|
||||||
userId: Int!
|
|
||||||
videoId: Int
|
|
||||||
status: ClaimStatusEnum!
|
|
||||||
expiresAt: DateTime
|
|
||||||
endedAt: DateTime
|
|
||||||
createdAt: DateTime!
|
|
||||||
}
|
|
||||||
|
|
||||||
enum ClaimStatusEnum {
|
|
||||||
REQUESTED
|
|
||||||
CODE_ISSUED
|
|
||||||
SCANNING
|
|
||||||
SCAN_CONFIRMED
|
|
||||||
INGESTING
|
|
||||||
ACTIVE
|
|
||||||
ENDED_BY_USER
|
|
||||||
EXPIRED
|
|
||||||
STREAM_LOST
|
|
||||||
STREAM_UNREACHABLE
|
|
||||||
CODE_EXPIRED
|
|
||||||
RELEASED_INACTIVE
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type DeployedConfigGQL {
|
type DeployedConfigGQL {
|
||||||
@@ -757,6 +734,7 @@ type VideoHistoryGQL {
|
|||||||
videos: [VideoGQL!]!
|
videos: [VideoGQL!]!
|
||||||
pageInfo: PageInfoGQL!
|
pageInfo: PageInfoGQL!
|
||||||
hasFollowing: Boolean!
|
hasFollowing: Boolean!
|
||||||
|
followingCount: Int!
|
||||||
}
|
}
|
||||||
|
|
||||||
type PageInfoGQL {
|
type PageInfoGQL {
|
||||||
@@ -793,6 +771,13 @@ type RunLeaderboardGQL {
|
|||||||
entries: [RunGQL!]!
|
entries: [RunGQL!]!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type DrillRunLeaderboardGQL {
|
||||||
|
entries: [RunGQL!]!
|
||||||
|
youRun: RunGQL
|
||||||
|
youRank: Int
|
||||||
|
totalPlayers: Int!
|
||||||
|
}
|
||||||
|
|
||||||
type CountLeaderboardGQL {
|
type CountLeaderboardGQL {
|
||||||
entries: [UserShotCountEntry!]!
|
entries: [UserShotCountEntry!]!
|
||||||
}
|
}
|
||||||
@@ -1027,6 +1012,7 @@ type UserRelationship {
|
|||||||
type StripeSubscriptionOptionsGQL {
|
type StripeSubscriptionOptionsGQL {
|
||||||
products: [StripeProductGQL!]!
|
products: [StripeProductGQL!]!
|
||||||
trialPeriodDays: Int
|
trialPeriodDays: Int
|
||||||
|
appleIap: AppleIapSubscriptionOptionsGQL!
|
||||||
}
|
}
|
||||||
|
|
||||||
type StripeProductGQL {
|
type StripeProductGQL {
|
||||||
@@ -1047,6 +1033,12 @@ type StripePriceGQL {
|
|||||||
active: Boolean!
|
active: Boolean!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type AppleIapSubscriptionOptionsGQL {
|
||||||
|
enabled: Boolean!
|
||||||
|
proMonthlyProductId: String
|
||||||
|
productIds: [String!]!
|
||||||
|
}
|
||||||
|
|
||||||
type UserSubscriptionStatusGQL {
|
type UserSubscriptionStatusGQL {
|
||||||
hasActiveSubscription: Boolean!
|
hasActiveSubscription: Boolean!
|
||||||
entitlementSource: EntitlementSourceTypeEnum
|
entitlementSource: EntitlementSourceTypeEnum
|
||||||
@@ -1064,6 +1056,7 @@ enum EntitlementSourceTypeEnum {
|
|||||||
ADMIN
|
ADMIN
|
||||||
MANUAL
|
MANUAL
|
||||||
STRIPE
|
STRIPE
|
||||||
|
APPLE
|
||||||
ALPHA_LEGACY
|
ALPHA_LEGACY
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1173,9 +1166,6 @@ type Mutation {
|
|||||||
submitChallengeEntry(entryId: ID!, videoId: ID!): ChallengeEntry!
|
submitChallengeEntry(entryId: ID!, videoId: ID!): ChallengeEntry!
|
||||||
dismissChallenge(challengeId: ID!): Boolean!
|
dismissChallenge(challengeId: ID!): Boolean!
|
||||||
undismissChallenge(challengeId: ID!): Boolean!
|
undismissChallenge(challengeId: ID!): Boolean!
|
||||||
claimCamera(cameraId: Int!, durationMinutes: Int! = 60): CameraClaimGQL!
|
|
||||||
endClaim(claimId: Int!): CameraClaimGQL!
|
|
||||||
extendClaim(claimId: Int!, additionalMinutes: Int! = 60): CameraClaimGQL!
|
|
||||||
setLoggerLevel(path: String!, level: String!): Boolean!
|
setLoggerLevel(path: String!, level: String!): Boolean!
|
||||||
reactToVideo(videoId: Int!, reaction: ReactionEnum): Boolean!
|
reactToVideo(videoId: Int!, reaction: ReactionEnum): Boolean!
|
||||||
commentOnVideo(
|
commentOnVideo(
|
||||||
@@ -1222,6 +1212,9 @@ type Mutation {
|
|||||||
retireTags(tagIds: [Int!]!): Boolean!
|
retireTags(tagIds: [Int!]!): Boolean!
|
||||||
ensureStripeCustomerExists: UserGQL!
|
ensureStripeCustomerExists: UserGQL!
|
||||||
deleteUser: Boolean!
|
deleteUser: Boolean!
|
||||||
|
syncAppleSubscription(
|
||||||
|
input: SyncAppleSubscriptionInputGQL!
|
||||||
|
): SyncAppleSubscriptionResultGQL!
|
||||||
createSubscription(priceId: String!): CreateSubscriptionResultGQL!
|
createSubscription(priceId: String!): CreateSubscriptionResultGQL!
|
||||||
createCustomerPortalSession: CreateCustomerPortalSessionResultGQL!
|
createCustomerPortalSession: CreateCustomerPortalSessionResultGQL!
|
||||||
cancelSubscription: UserSubscriptionStatusGQL!
|
cancelSubscription: UserSubscriptionStatusGQL!
|
||||||
@@ -1373,6 +1366,27 @@ input EditUserInputGQL {
|
|||||||
fargoRating: Int = null
|
fargoRating: Int = null
|
||||||
videosPrivateByDefault: Boolean = null
|
videosPrivateByDefault: Boolean = null
|
||||||
agreesToMarketing: Boolean = null
|
agreesToMarketing: Boolean = null
|
||||||
|
bio: String = null
|
||||||
|
}
|
||||||
|
|
||||||
|
type SyncAppleSubscriptionResultGQL {
|
||||||
|
ok: Boolean!
|
||||||
|
errorCode: String
|
||||||
|
errorMessage: String
|
||||||
|
hasActiveSubscription: Boolean!
|
||||||
|
entitlementSource: EntitlementSourceTypeEnum
|
||||||
|
entitlementStartsAt: DateTime
|
||||||
|
entitlementEndsAt: DateTime
|
||||||
|
appleStatus: Int
|
||||||
|
originalTransactionId: String
|
||||||
|
latestTransactionId: String
|
||||||
|
productId: String
|
||||||
|
expiresAt: DateTime
|
||||||
|
}
|
||||||
|
|
||||||
|
input SyncAppleSubscriptionInputGQL {
|
||||||
|
signedTransactionInfo: String!
|
||||||
|
signedRenewalInfo: String = null
|
||||||
}
|
}
|
||||||
|
|
||||||
type CreateSubscriptionResultGQL {
|
type CreateSubscriptionResultGQL {
|
||||||
|
|||||||
Reference in New Issue
Block a user