Spaces:
Runtime error
Runtime error
File size: 1,175 Bytes
5b12974 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | import { IngestionStatus, PrismaClient } from "@prisma/client";
import { type z } from "zod";
import { type IngestBodyRequest, ingestTask } from "../ingest/ingest";
const prisma = new PrismaClient();
export const addToQueue = async (
body: z.infer<typeof IngestBodyRequest>,
userId: string,
activityId?: string,
) => {
const user = await prisma.user.findFirst({
where: {
id: userId,
},
include: {
Workspace: true,
},
});
if (!user?.Workspace?.id) {
throw new Error(
"Workspace ID is required to create an ingestion queue entry.",
);
}
const queuePersist = await prisma.ingestionQueue.create({
data: {
spaceId: body.spaceId ? body.spaceId : null,
data: body,
status: IngestionStatus.PENDING,
priority: 1,
workspaceId: user.Workspace.id,
activityId,
},
});
const handler = await ingestTask.trigger(
{ body, userId, workspaceId: user.Workspace.id, queueId: queuePersist.id },
{
queue: "ingestion-queue",
concurrencyKey: userId,
tags: [user.id, queuePersist.id],
},
);
return { id: handler.id, token: handler.publicAccessToken };
};
|