Compare commits

..

39 Commits

Author SHA1 Message Date
ff0a11ea0d Merge pull request 'Add last intended segment bound in fragment for VideoFeed stream obj' (#154) from loewy/add-last-intended-segment-bound-to-stream into master
Reviewed-on: #154
2025-01-16 23:03:42 -07:00
84192d1387 add last intended segment bound
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2025-01-16 22:01:57 -08:00
f1ae2b62d6 Add limit parameter 2025-01-16 20:16:29 -07:00
4f78cd94ab Add video info to longest runs leaderboard 2025-01-16 17:01:32 -07:00
bfdda67d1a Add run filter and run fields 2025-01-16 15:44:11 -07:00
881350619a Add get longest runs operation 2024-12-23 13:55:14 -07:00
8bc67f75b0 Use RunGQL directly for run leaderboard 2024-12-22 23:30:01 -07:00
df8495df77 Add proportion and total made to leaderboard query 2024-12-22 17:12:24 -07:00
0c45855f7d Add video count 2024-12-22 15:37:06 -07:00
a2e659dfcb Add runs leaderboard 2024-12-22 15:00:19 -07:00
2a36a392ce Merge pull request 'Leaderboards operation' (#153) from loewy/leaderboard-operations into master
Reviewed-on: #153
2024-12-20 14:14:24 -07:00
145c2f9558 leaderboards operation
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2024-12-20 13:13:30 -08:00
3f2e5d331f Add makes leaderboard 2024-12-19 17:48:29 -07:00
bf8e851139 Merge pull request 'Add profile image for followers' (#152) from loewy/add-profile-image-for-followers into master
Reviewed-on: #152
2024-12-19 17:36:44 -07:00
eb15f4f3b8 add profile image to user relationship
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2024-12-19 16:33:48 -08:00
82ff8546d4 add profile image for followers 2024-12-19 16:31:46 -08:00
284334606d Merge pull request 'GetUser operation + fragment' (#151) from loewy/get-user-operation-and-fragment into master
Reviewed-on: #151
2024-12-19 12:47:20 -07:00
a883bc3e2f getUser by user id query
All checks were successful
Tests / Tests (pull_request) Successful in 10s
2024-12-19 10:28:41 -08:00
b50ea5b573 Merge pull request 'Sync Apollo version w/ mobile to prevent ts errors' (#150) from loewy/sync-apollo-version-w-mobile into master
Reviewed-on: #150
Reviewed-by: Ivan Malison <ivanmalison@gmail.com>
2024-12-19 11:28:04 -07:00
de17659dbb sync apollo version w/ mobile to prevent ts errors
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2024-12-19 10:26:09 -08:00
33886b4e9e Update getFeed operation 2024-12-17 18:07:00 -07:00
9d0ba908dc Generalize getFeed 2024-12-17 17:35:38 -07:00
7b4880a990 Add all videos 2024-12-17 14:12:25 -07:00
8ed177b0f3 Merge pull request 'Add EditShot operation' (#149) from loewy/add-edit-shot-operation into master
Reviewed-on: #149
2024-12-09 14:33:47 -07:00
976cc66ccb add editshot operation
All checks were successful
Tests / Tests (pull_request) Successful in 17s
2024-12-09 14:00:36 -07:00
af461fff00 Merge pull request 'Add Difficulty ShotOrdering' (#148) from mk/shots-ordering-by-difficulty into master
Reviewed-on: #148
2024-12-07 15:27:08 -07:00
7a39b4ca60 Add Difficulty ShotOrdering
All checks were successful
Tests / Tests (pull_request) Successful in 15s
2024-12-07 14:25:08 -08:00
9befbe3833 Merge pull request 'Add private field to video endpoints' (#147) from loewy/add-private-to-operations into master
Reviewed-on: #147
2024-12-05 16:31:25 -07:00
68a4c064f3 add private field to video endpoints
All checks were successful
Tests / Tests (pull_request) Successful in 16s
2024-12-05 15:30:16 -08:00
54fd741670 Merge pull request 'Request additional medals in operations' (#146) from loewy/request-new-medals-in-operation into master
Reviewed-on: #146
2024-12-05 14:57:41 -07:00
2f9e630de4 new assets for medals
All checks were successful
Tests / Tests (pull_request) Successful in 17s
2024-12-05 13:47:47 -08:00
5efd8ef8e5 Merge pull request 'Remove distance 60 from operation' (#145) from loewy/remove-distance-60-from-request into master
Reviewed-on: #145
2024-12-04 15:00:27 -07:00
6ad3d449d8 remove distance 60 from operation
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2024-12-04 13:59:51 -08:00
8fe20d1c41 Merge pull request 'Add editShotData types' (#144) from mk/edit-shot-data into master
Reviewed-on: #144
2024-12-02 20:01:53 -07:00
e151f39582 Add edit shot data stuff
All checks were successful
Tests / Tests (pull_request) Successful in 5s
2024-12-02 18:57:36 -08:00
f136ddb9ca Merge pull request 'Replaces interval with datetime range' (#143) from mk/fix-medal-time-input into master
Reviewed-on: #143
2024-11-26 14:21:16 -07:00
5d05614e07 Replaces interval with datetime range
All checks were successful
Tests / Tests (pull_request) Successful in 17s
2024-11-26 13:19:33 -08:00
c4c3ccde00 id in homography 2024-11-25 14:53:41 -08:00
e137ce8ad1 Request id in Homography info 2024-11-21 17:59:29 -07:00
10 changed files with 911 additions and 78 deletions

View File

@ -12,7 +12,7 @@
"author": "Ivan Malison <IvanMalison@gmail.com>",
"license": "MIT",
"dependencies": {
"@apollo/client": "^3.9.2",
"@apollo/client": "^3.11.10",
"@graphql-codegen/cli": "^5.0.0",
"@graphql-codegen/typescript": "^4.0.1",
"@graphql-codegen/typescript-operations": "^4.0.1",

File diff suppressed because it is too large Load Diff

View File

@ -36,6 +36,7 @@ fragment VideoCardFields on VideoGQL {
screenshotUri
stream {
id
lastIntendedSegmentBound
isCompleted
}
tableSize
@ -62,12 +63,16 @@ query GetVideoFeed(
$after: String = null
$filters: VideoFilterInput = null
$includeCallersVideos: Boolean = null
$includePrivate: IncludePrivateEnum = MINE
$feedInput: VideoFeedInputGQL = null
) {
getFeedVideos(
limit: $limit
after: $after
filters: $filters
includeCallersVideos: $includeCallersVideos
includePrivate: $includePrivate
feedInput: $feedInput
) {
videos {
...VideoCardFields

View File

@ -0,0 +1,32 @@
query GetMakesLeaderboard($interval: TimeInterval, $when: DateTime) {
getMakesLeaderboard(interval: $interval, when: $when) {
entries {
user {
id
username
profileImageUri
}
value
proportionMade
total
}
}
}
query GetRunsLeaderboard($interval: TimeInterval, $when: DateTime) {
getLongestRunsLeaderboard(interval: $interval, when: $when) {
entries {
id
runLength
video {
name
createdAt
}
user {
id
username
profileImageUri
}
}
}
}

View File

@ -5,9 +5,6 @@ fragment MedalFields on MedalGQL {
query getMedals($scope: MedalScope!, $userId: Int) {
getMedals(scope: $scope, userId: $userId) {
distanceOver66 {
...MedalFields
}
distanceOver78 {
...MedalFields
}
@ -47,19 +44,18 @@ query getMedals($scope: MedalScope!, $userId: Int) {
totalMakes100 {
...MedalFields
}
# missing assets
# totalMakes500 {
# ...MedalFields
# }
# totalMakes1000 {
# ...MedalFields
# }
# totalMakes5000 {
# ...MedalFields
# }
# totalMakes10000 {
# ...MedalFields
# }
totalMakes500 {
...MedalFields
}
totalMakes1000 {
...MedalFields
}
totalMakes5000 {
...MedalFields
}
totalMakes10000 {
...MedalFields
}
dailyMakes50 {
...MedalFields
}
@ -72,9 +68,8 @@ query getMedals($scope: MedalScope!, $userId: Int) {
dailyMakes200 {
...MedalFields
}
# missing asset
# dailyMakes250 {
# ...MedalFields
# }
dailyMakes250 {
...MedalFields
}
}
}

View File

@ -178,3 +178,15 @@ fragment ShotWithAllFeatures on ShotGQL {
notes
}
}
mutation EditShot($shotId: Int!, $fieldsToEdit: EditableShotFieldInputGQL!) {
editShot(shotId: $shotId, fieldsToEdit: $fieldsToEdit) {
error {
shotId
msg
}
shot {
...ShotWithAllFeatures
}
}
}

View File

@ -21,27 +21,19 @@ mutation getProfileImageUploadLink($fileExt: String = ".png") {
mutation editProfileImageUri($profileImageUri: String!) {
editProfileImageUri(profileImageUri: $profileImageUri) {
id
firebaseUid
username
profileImageUri
createdAt
updatedAt
...UserFragment
}
}
query getLoggedInUser {
getLoggedInUser {
id
firebaseUid
username
isAdmin
profileImageUri
fargoRating
activeVideoId
createdAt
updatedAt
videosPrivateByDefault
...UserFragment
}
}
query GetUser($userId: Int!) {
getUser(userId: $userId) {
...UserFragment
}
}
@ -74,6 +66,7 @@ query getUserRelationshipsMatching(
relationships {
toUser {
username
profileImageUri
id
}
toUserFollows
@ -125,10 +118,12 @@ query getUserFollowingFollowers {
following {
id
username
profileImageUri
}
followers {
id
username
profileImageUri
}
}
}
@ -157,3 +152,16 @@ mutation editUser(
videosPrivateByDefault
}
}
fragment UserFragment on UserGQL {
id
firebaseUid
username
isAdmin
profileImageUri
fargoRating
activeVideoId
createdAt
updatedAt
videosPrivateByDefault
}

View File

@ -36,6 +36,7 @@ query GetVideoUpdatePageDetails($videoId: Int!) {
makePercentage
elapsedTime
tableSize
private
tags {
tagClasses {
name
@ -65,6 +66,7 @@ query GetVideoDetails($videoId: Int!) {
createdAt
updatedAt
tableSize
private
owner {
id
firebaseUid

View File

@ -66,9 +66,21 @@ type Query {
getFeedVideos(
limit: Int! = 5
after: String = null
includePrivate: IncludePrivateEnum! = MINE
includeCallersVideos: Boolean = true
filters: VideoFilterInput = null
feedInput: VideoFeedInputGQL = null
): VideoHistoryGQL!
getLongestRunsLeaderboard(
interval: TimeInterval = null
when: DateTime = null
limit: Int! = 100
requiredTags: [String!] = null
): RunLeaderboardGQL!
getMakesLeaderboard(
interval: TimeInterval = null
when: DateTime = null
): CountLeaderboardGQL!
}
type AggregateResultGQL {
@ -171,6 +183,7 @@ input FilterInput @oneOf {
shotDirection: [ShotDirectionEnum!]
videoId: [Int!]
userId: [Int!]
runId: [Int!]
username: [String!]
fargoRating: FloatRangeFilter
make: [Boolean!]
@ -320,6 +333,8 @@ type MedalGQL {
input MedalScope @oneOf {
videoId: Int
interval: TimeInterval
@deprecated(reason: "NO LONGER SUPPORTED, USE DATETIME_RANGE")
datetimeRange: DatetimeRangeAggregationInput
}
type GetRunsResult {
@ -334,6 +349,8 @@ type RunGQL {
videoId: Int!
userId: Int!
shots: [ShotGQL!]!
video: VideoGQL!
user: UserGQL!
}
type ShotGQL {
@ -352,6 +369,8 @@ type ShotGQL {
annotations: [ShotAnnotationGQL!]!
falsePositiveScore: Float
video: VideoGQL
run: RunGQL
runFeatures: RunFeaturesGQL
}
type CueObjectFeaturesGQL {
@ -591,6 +610,11 @@ type VideoProcessingStatusGQL {
updatedAt: DateTime
}
type RunFeaturesGQL {
runId: Int!
indexInRun: Int!
}
input RunFilterInput {
videoId: [Int!]
userId: [Int!]
@ -636,6 +660,7 @@ input GetShotsOrdering {
input ShotsOrderingComponent @oneOf {
videoCreation: DatetimeOrdering
marginOfError: FloatOrdering
difficulty: FloatOrdering
videoId: IntOrdering
startFrame: IntOrdering
runLength: IntOrdering
@ -702,9 +727,41 @@ scalar JSON
url: "https://ecma-international.org/wp-content/uploads/ECMA-404_2nd_edition_december_2017.pdf"
)
enum IncludePrivateEnum {
ALL
MINE
NONE
}
input VideoFeedInputGQL @oneOf {
followedByUserId: Int
userId: Int
allUsers: Boolean
}
type RunLeaderboardGQL {
entries: [RunGQL!]!
}
type CountLeaderboardGQL {
entries: [UserShotCountEntry!]!
}
type UserShotCountEntry {
user: UserGQL!
value: Int!
total: Int!
proportionMade: Float!
videos: Int!
}
type Mutation {
createBucketSet(params: CreateBucketSetInput!): BucketSetGQL!
setLoggerLevel(path: String!, level: String!): Boolean!
editShot(
shotId: Int!
fieldsToEdit: EditableShotFieldInputGQL!
): EditShotReturn!
addAnnotationToShot(
shotId: Int!
annotationName: String!
@ -742,6 +799,27 @@ input CreateBucketSetInput {
buckets: [BucketInputGQL!]!
}
type EditShotReturn {
shot: ShotGQL
error: DoesNotOwnShotErr
}
type DoesNotOwnShotErr {
shotId: Int!
msg: String
}
input EditableShotFieldInputGQL {
intendedPocketType: PocketEnum
shotDirection: ShotDirectionEnum
spinType: SpinTypeEnum
targetPocketAngleDirection: ShotDirectionEnum
make: Boolean
backcut: Boolean
excludeFromStats: Boolean
notes: String
}
type AddShotAnnotationReturn {
value: SuccessfulAddAddShotAnnotationErrors!
}
@ -762,11 +840,6 @@ union DoesNotOwnShotErrOtherErrorNeedsNote =
DoesNotOwnShotErr
| OtherErrorNeedsNote
type DoesNotOwnShotErr {
shotId: Int!
msg: String
}
type OtherErrorNeedsNote {
msg: String
}

View File

@ -10,10 +10,10 @@
"@jridgewell/gen-mapping" "^0.3.0"
"@jridgewell/trace-mapping" "^0.3.9"
"@apollo/client@^3.9.2":
version "3.9.2"
resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.9.2.tgz#96edf2c212f828bad1ef3d84234fa473c5a27ff8"
integrity sha512-Zw9WvXjqhpbgkvAvnj52vstOWwM0iedKWtn1hSq1cODQyoe1CF2uFwMYFI7l56BrAY9CzLi6MQA0AhxpgJgvxw==
"@apollo/client@^3.11.10":
version "3.12.3"
resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.12.3.tgz#0d252749baad8328e06883fe118dc7e73e3bbb1f"
integrity sha512-KZ5zymRdb8bMbGUb1wP2U04ff7qIGgaC1BCdCVC+IPFiXkxEhHBc5fDEQOwAUT+vUo9KbBh3g7QK/JCOswn59w==
dependencies:
"@graphql-typed-document-node/core" "^3.1.1"
"@wry/caches" "^1.0.0"
@ -23,7 +23,7 @@
hoist-non-react-statics "^3.3.2"
optimism "^0.18.0"
prop-types "^15.7.2"
rehackt "0.0.3"
rehackt "^0.1.0"
response-iterator "^0.2.6"
symbol-observable "^4.0.0"
ts-invariant "^0.10.3"
@ -2633,10 +2633,10 @@ regenerator-runtime@^0.14.0:
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f"
integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==
rehackt@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/rehackt/-/rehackt-0.0.3.tgz#1ea454620d4641db8342e2db44595cf0e7ac6aa0"
integrity sha512-aBRHudKhOWwsTvCbSoinzq+Lej/7R8e8UoPvLZo5HirZIIBLGAgdG7SL9QpdcBoQ7+3QYPi3lRLknAzXBlhZ7g==
rehackt@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/rehackt/-/rehackt-0.1.0.tgz#a7c5e289c87345f70da8728a7eb878e5d03c696b"
integrity sha512-7kRDOuLHB87D/JESKxQoRwv4DzbIdwkAGQ7p6QKGdVlY1IZheUnVhlk/4UZlNUVxdAXpyxikE3URsG067ybVzw==
relay-runtime@12.0.0:
version "12.0.0"