6ede33ccdb
Build and Push Docker Images / create_manifest (web, surfsense-web, , cpu) (push) Has been cancelled
Build and Push Docker Images / finalize_release (push) Has been cancelled
Obsidian Plugin Lint / lint (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, cpu, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64, , runner, false, cpu) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, cpu, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64, , runner, false, cpu) (push) Has been cancelled
Build and Push Docker Images / compute_version (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cpu, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64, , production, false, cpu) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cpu, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64, , production, false, cpu) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu126, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64, -cuda126, production, true, cuda126) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu126, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64, -cuda126, production, true, cuda126) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu128, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64, -cuda, production, true, cuda) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu128, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64, -cuda, production, true, cuda) (push) Has been cancelled
Build and Push Docker Images / verify_digests (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend, , cpu) (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend, -cuda, cuda) (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend, -cuda126, cuda126) (push) Has been cancelled
66 lines
1.8 KiB
TypeScript
66 lines
1.8 KiB
TypeScript
import type { APIRequestContext } from "@playwright/test";
|
|
import { authHeaders, BACKEND_URL } from "./auth";
|
|
|
|
export type DocumentRow = {
|
|
id: number;
|
|
title: string;
|
|
content: string;
|
|
document_type: string;
|
|
status: { state?: string } | string;
|
|
};
|
|
|
|
type Paginated<T> = {
|
|
items?: T[];
|
|
total?: number;
|
|
};
|
|
|
|
export async function listDocuments(
|
|
request: APIRequestContext,
|
|
token: string,
|
|
workspaceId: number,
|
|
limit = 100
|
|
): Promise<DocumentRow[]> {
|
|
const response = await request.get(
|
|
`${BACKEND_URL}/api/v1/documents?workspace_id=${workspaceId}&limit=${limit}`,
|
|
{ headers: authHeaders(token) }
|
|
);
|
|
if (!response.ok()) {
|
|
throw new Error(`listDocuments failed (${response.status()}): ${await response.text()}`);
|
|
}
|
|
const body = (await response.json()) as Paginated<DocumentRow> | DocumentRow[];
|
|
return Array.isArray(body) ? body : (body.items ?? []);
|
|
}
|
|
|
|
export function isDocumentReady(doc: DocumentRow): boolean {
|
|
const state = typeof doc.status === "string" ? doc.status : doc.status?.state;
|
|
return state === "ready" || state === "READY";
|
|
}
|
|
|
|
export type EditorContent = {
|
|
document_id: number;
|
|
title: string;
|
|
document_type: string;
|
|
source_markdown: string;
|
|
content_size_bytes: number;
|
|
chunk_count: number;
|
|
viewer_mode?: "plate" | "monaco";
|
|
editor_plate_max_bytes?: number;
|
|
};
|
|
|
|
// Same endpoint the UI hits when a user opens a document in the dashboard.
|
|
export async function getEditorContent(
|
|
request: APIRequestContext,
|
|
token: string,
|
|
workspaceId: number,
|
|
documentId: number
|
|
): Promise<EditorContent> {
|
|
const response = await request.get(
|
|
`${BACKEND_URL}/api/v1/workspaces/${workspaceId}/documents/${documentId}/editor-content`,
|
|
{ headers: authHeaders(token) }
|
|
);
|
|
if (!response.ok()) {
|
|
throw new Error(`getEditorContent failed (${response.status()}): ${await response.text()}`);
|
|
}
|
|
return (await response.json()) as EditorContent;
|
|
}
|