bigbluebutton-Github/bigbluebutton-html5/imports/ui/components/whiteboard/queries.ts

180 lines
3.9 KiB
TypeScript
Raw Normal View History

2023-09-28 04:42:47 +08:00
import { gql } from '@apollo/client';
// Interface for a single cursor coordinates object
export interface CursorCoordinates {
xPercent: number;
yPercent: number;
userId: string;
}
// Interface for the response data
export interface CursorCoordinatesResponse {
pres_page_cursor_stream: CursorCoordinates[];
}
export interface UserCursor {
name: string;
presenter: boolean;
role: string;
}
export interface userCursorResponse {
userId: string;
isCurrentPage: boolean;
lastUpdatedAt: string;
pageId: string;
presentationId: string;
user: UserCursor;
}
// Interface for the pres_page_cursor subscription
export interface CursorSubscriptionResponse {
pres_page_cursor: Array<userCursorResponse>;
}
2023-09-28 04:42:47 +08:00
export const CURRENT_PRESENTATION_PAGE_SUBSCRIPTION = gql`subscription CurrentPresentationPagesSubscription {
pres_page_curr {
height
isCurrentPage
num
pageId
scaledHeight
scaledViewBoxHeight
scaledViewBoxWidth
scaledWidth
svgUrl: urlsJson(path: "$.svg")
2023-09-28 04:42:47 +08:00
width
xOffset
yOffset
presentationId
content
downloadFileUri
2023-10-18 00:35:48 +08:00
totalPages
downloadable
2023-10-03 20:08:12 +08:00
presentationName
isDefaultPresentation
infiniteCanvas
2023-09-28 04:42:47 +08:00
}
}`;
export const PRESENTATIONS_SUBSCRIPTION = gql`subscription PresentationsSubscription {
pres_presentation {
2023-10-18 00:35:48 +08:00
uploadInProgress
current
downloadFileUri
downloadable
2023-10-18 00:35:48 +08:00
uploadErrorDetailsJson
uploadErrorMsgKey
filenameConverted
isDefault
name
2023-10-18 00:35:48 +08:00
totalPages
totalPagesUploaded
presentationId
removable
uploadCompleted
}
}`;
2023-10-20 02:56:13 +08:00
export const EXPORTING_PRESENTATIONS_SUBSCRIPTION = gql`subscription PresentationsSubscription {
pres_presentation {
uploadInProgress
current
downloadFileUri
downloadable
uploadErrorDetailsJson
uploadErrorMsgKey
filenameConverted
isDefault
name
totalPages
totalPagesUploaded
presentationId
removable
uploadCompleted
exportToChatInProgress
exportToChatStatus
exportToChatCurrentPage
exportToChatHasError
}
}`;
export const PROCESSED_PRESENTATIONS_SUBSCRIPTION = gql`subscription ProcessedPresentationsSubscription {
2023-10-18 04:42:59 +08:00
pres_presentation(where: { uploadCompleted: { _eq: true } }) {
current
name
presentationId
}
}`;
2023-09-28 10:15:33 +08:00
export const CURRENT_PAGE_ANNOTATIONS_QUERY = gql`query CurrentPageAnnotationsQuery {
pres_annotation_curr(order_by: { lastUpdatedAt: desc }) {
2023-09-28 04:42:47 +08:00
annotationId
annotationInfo
lastHistorySequence
lastUpdatedAt
pageId
presentationId
userId
}
}`;
2023-09-28 10:15:33 +08:00
export const CURRENT_PAGE_ANNOTATIONS_STREAM = gql`subscription annotationsStream($lastUpdatedAt: timestamptz){
2024-04-16 23:50:59 +08:00
pres_annotation_curr_stream(batch_size: 1000, cursor: {initial_value: {lastUpdatedAt: $lastUpdatedAt}}) {
2023-09-28 10:15:33 +08:00
annotationId
annotationInfo
lastUpdatedAt
pageId
presentationId
userId
}
}`;
export const CURRENT_PAGE_WRITERS_SUBSCRIPTION = gql`
subscription currentPageWritersSubscription($pageId: String!) {
pres_page_writers(where: { pageId: { _eq: $pageId } }) {
userId
}
}
`;
2023-09-28 04:42:47 +08:00
2024-06-19 22:13:57 +08:00
export const CURRENT_PAGE_WRITERS_QUERY = gql`
query currentPageWritersQuery($pageId: String!) {
pres_page_writers(where: { pageId: { _eq: $pageId } }) {
userId
pageId
}
}
2024-06-19 22:13:57 +08:00
`;
2024-06-19 21:53:39 +08:00
export const cursorUserSubscription = gql`
subscription CursorSubscription {
pres_page_cursor(
where: {isCurrentPage: {_eq: true}}
order_by: { userId: asc }
) {
2024-06-19 21:53:39 +08:00
userId
user {
name
presenter
role
}
}
}
`;
2024-06-19 21:53:39 +08:00
export const getCursorsCoordinatesStream = gql`
subscription getCursorCoordinatesStream {
2024-06-19 21:53:39 +08:00
pres_page_cursor_stream(cursor: {initial_value: {lastUpdatedAt: "2020-01-01"}},
where: {isCurrentPage: {_eq: true}},
batch_size: 100) {
xPercent
yPercent
lastUpdatedAt
userId
}
}
`;
2023-09-28 10:15:33 +08:00
export default CURRENT_PAGE_ANNOTATIONS_QUERY;