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.

35 lines
972 B
TypeScript

import {
router,
publicProcedure,
createCallerFactory,
} from "../../trpc/server.js";
import { db } from "../../database/lowdb.js";
export const factTriggers = router({
fetchByFactId: publicProcedure
.input((x) => x as { factId: string })
.query(async ({ input: { factId } }) => {
return db.data.factTriggers.filter(
(factTrigger) => factTrigger.sourceFactId === factId,
);
}),
deleteOne: publicProcedure
.input(
(x) =>
x as {
factTriggerId: string;
},
)
.mutation(async ({ input: { factTriggerId } }) => {
const deletedFactTriggerIndex = db.data.facts.findIndex(
(fact) => fact.id === factTriggerId,
);
if (deletedFactTriggerIndex === -1) throw new Error("Fact not found");
db.data.factTriggers.splice(deletedFactTriggerIndex, 1);
db.write();
return { ok: true };
}),
});
export const createCaller = createCallerFactory(factTriggers);