30 lines
709 B
TypeScript
30 lines
709 B
TypeScript
import { z } from "zod";
|
|
import { notifyOwner } from "./notification";
|
|
import { adminProcedure, publicProcedure, router } from "./trpc";
|
|
|
|
export const systemRouter = router({
|
|
health: publicProcedure
|
|
.input(
|
|
z.object({
|
|
timestamp: z.number().min(0, "timestamp cannot be negative"),
|
|
})
|
|
)
|
|
.query(() => ({
|
|
ok: true,
|
|
})),
|
|
|
|
notifyOwner: adminProcedure
|
|
.input(
|
|
z.object({
|
|
title: z.string().min(1, "title is required"),
|
|
content: z.string().min(1, "content is required"),
|
|
})
|
|
)
|
|
.mutation(async ({ input }) => {
|
|
const delivered = await notifyOwner(input);
|
|
return {
|
|
success: delivered,
|
|
} as const;
|
|
}),
|
|
});
|