Compare commits

..

3 Commits

Author SHA1 Message Date
2938a78b75 add follow enum
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2025-11-05 15:27:44 -08:00
c73e66cbe8 notifications schema 2025-11-05 11:46:27 -08:00
5c62d45068 Merge pull request 'Add marketing opt in to schema' (#203) from loewy/add-agrees-to-marketing-schema into master
Reviewed-on: #203
2025-10-20 20:52:17 +00:00
2 changed files with 98 additions and 2 deletions

View File

@@ -2286,6 +2286,7 @@ export type Mutation = {
createSubscription: CreateSubscriptionResultGql;
createUploadStream: CreateUploadStreamReturn;
deleteComment: Scalars["Boolean"]["output"];
deleteNotification: Scalars["Boolean"]["output"];
deleteTags: Scalars["Boolean"]["output"];
deleteUser: Scalars["Boolean"]["output"];
deleteVideo: Scalars["Boolean"]["output"];
@@ -2300,6 +2301,9 @@ export type Mutation = {
getHlsInitUploadLink: GetUploadLinkReturn;
getProfileImageUploadLink: GetProfileUploadLinkReturn;
getUploadLink: GetUploadLinkReturn;
markAllNotificationsAsRead: Scalars["Boolean"]["output"];
markNotificationAsRead: Scalars["Boolean"]["output"];
markNotificationsAsRead: Scalars["Boolean"]["output"];
reactToVideo: Scalars["Boolean"]["output"];
reportContent: Scalars["Boolean"]["output"];
retireTags: Scalars["Boolean"]["output"];
@@ -2346,6 +2350,10 @@ export type MutationDeleteCommentArgs = {
videoId: Scalars["Int"]["input"];
};
export type MutationDeleteNotificationArgs = {
notificationId: Scalars["Int"]["input"];
};
export type MutationDeleteTagsArgs = {
tagsToDelete: Array<VideoTagInput>;
videoId: Scalars["Int"]["input"];
@@ -2401,6 +2409,14 @@ export type MutationGetUploadLinkArgs = {
videoId: Scalars["Int"]["input"];
};
export type MutationMarkNotificationAsReadArgs = {
notificationId: Scalars["Int"]["input"];
};
export type MutationMarkNotificationsAsReadArgs = {
notificationIds: Array<Scalars["Int"]["input"]>;
};
export type MutationReactToVideoArgs = {
reaction?: InputMaybe<ReactionEnum>;
videoId: Scalars["Int"]["input"];
@@ -2441,6 +2457,39 @@ export type NoInitForChunkedUploadErr = {
segmentType: StreamSegmentTypeEnum;
};
export type NotificationConnection = {
__typename?: "NotificationConnection";
hasMore: Scalars["Boolean"]["output"];
notifications: Array<NotificationGql>;
totalCount: Scalars["Int"]["output"];
unreadCount: Scalars["Int"]["output"];
};
export type NotificationFilters = {
isRead?: InputMaybe<Scalars["Boolean"]["input"]>;
notificationTypes?: InputMaybe<Array<NotificationTypeEnum>>;
};
export type NotificationGql = {
__typename?: "NotificationGQL";
actor: UserGql;
comment?: Maybe<CommentGql>;
createdAt: Scalars["DateTime"]["output"];
id: Scalars["Int"]["output"];
isRead: Scalars["Boolean"]["output"];
notificationType: NotificationTypeEnum;
reactionType?: Maybe<Scalars["String"]["output"]>;
readAt?: Maybe<Scalars["DateTime"]["output"]>;
videoId?: Maybe<Scalars["Int"]["output"]>;
};
export enum NotificationTypeEnum {
Comment = "COMMENT",
CommentReply = "COMMENT_REPLY",
Follow = "FOLLOW",
Reaction = "REACTION",
}
export type OtherErrorNeedsNote = {
__typename?: "OtherErrorNeedsNote";
msg?: Maybe<Scalars["String"]["output"]>;
@@ -2550,6 +2599,8 @@ export type Query = {
getVideo: VideoGql;
getVideoMakePercentageIntervals: Array<MakePercentageIntervalGql>;
getVideos: Array<VideoGql>;
notifications: NotificationConnection;
unreadNotificationCount: Scalars["Int"]["output"];
waitFor: Scalars["Float"]["output"];
};
@@ -2689,6 +2740,12 @@ export type QueryGetVideosArgs = {
videoIds: Array<Scalars["Int"]["input"]>;
};
export type QueryNotificationsArgs = {
filters?: InputMaybe<NotificationFilters>;
limit?: Scalars["Int"]["input"];
offset?: Scalars["Int"]["input"];
};
export type QueryWaitForArgs = {
duration: Scalars["Float"]["input"];
};
@@ -3223,7 +3280,6 @@ export type VideoGql = {
export type VideoHistoryGql = {
__typename?: "VideoHistoryGQL";
hasFollowing: Scalars["Boolean"]["output"];
pageInfo: PageInfoGql;
videos: Array<VideoGql>;
};

View File

@@ -28,6 +28,12 @@ type Query {
when: DateTime = null
): CountLeaderboardGQL!
getMedals(scope: MedalScope!, userId: Int = null): RequestedMedalsGQL!
notifications(
limit: Int! = 20
offset: Int! = 0
filters: NotificationFilters = null
): NotificationConnection!
unreadNotificationCount: Int!
getRuns(
filterInput: RunFilterInput!
runIds: [Int!] = null
@@ -320,7 +326,6 @@ enum BannerKindEnum {
type VideoHistoryGQL {
videos: [VideoGQL!]!
pageInfo: PageInfoGQL!
hasFollowing: Boolean!
}
type VideoGQL {
@@ -715,6 +720,37 @@ input MedalScope @oneOf {
datetimeRange: DatetimeRangeAggregationInput
}
type NotificationConnection {
notifications: [NotificationGQL!]!
totalCount: Int!
unreadCount: Int!
hasMore: Boolean!
}
type NotificationGQL {
id: Int!
notificationType: NotificationTypeEnum!
actor: UserGQL!
videoId: Int
comment: CommentGQL
reactionType: String
isRead: Boolean!
createdAt: DateTime!
readAt: DateTime
}
enum NotificationTypeEnum {
COMMENT
COMMENT_REPLY
REACTION
FOLLOW
}
input NotificationFilters {
isRead: Boolean = null
notificationTypes: [NotificationTypeEnum!] = null
}
type GetRunsResult {
runs: [RunGQL!]!
count: Int
@@ -916,6 +952,10 @@ type Mutation {
reason: ReportReasonEnum!
customReason: String = null
): Boolean!
markNotificationAsRead(notificationId: Int!): Boolean!
markAllNotificationsAsRead: Boolean!
markNotificationsAsRead(notificationIds: [Int!]!): Boolean!
deleteNotification(notificationId: Int!): Boolean!
addAnnotationToShot(
shotId: Int!
annotationName: String!