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
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);
|