You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
905 B
TypeScript
28 lines
905 B
TypeScript
import type { PageContextServer } from "vike/types";
|
|
import { createCaller } from "../trpc.js";
|
|
|
|
export type Data = Awaited<ReturnType<typeof data>>;
|
|
|
|
export const data = async (pageContext: PageContextServer) => {
|
|
const { id } = pageContext.routeParams;
|
|
const caller = createCaller({});
|
|
const conversation = await caller.conversations.fetchOne({
|
|
id,
|
|
});
|
|
const messages = await caller.conversations.fetchMessages({
|
|
conversationId: id,
|
|
});
|
|
const facts = await caller.facts.fetchByConversationId({
|
|
conversationId: id,
|
|
});
|
|
|
|
// Fetch all fact triggers for the conversation's facts
|
|
const factTriggerPromises = facts.map(fact =>
|
|
caller.factTriggers.fetchByFactId({ factId: fact.id })
|
|
);
|
|
const factTriggersArrays = await Promise.all(factTriggerPromises);
|
|
const factTriggers = factTriggersArrays.flat();
|
|
|
|
return { conversation, messages, facts, factTriggers };
|
|
};
|