import { z } from "zod"; import { createTRPCRouter, publicProcedure, protectedProcedure } from "../trpc"; import { TRPCError } from "@trpc/server"; export const exampleRouter = createTRPCRouter({ hello: publicProcedure .input(z.object({ text: z.string() })) .query(({ input }) => { return { greeting: `Hello ${input.text}`, }; }), getAll: publicProcedure.query(({ ctx }) => { return ctx.prisma.example.findMany(); }), getSecretMessage: protectedProcedure.query(() => { return "you can now see this secret message!"; }), userProfile: protectedProcedure.query(({ ctx }) => { const { session } = ctx; if (!session || !session.user) { throw new TRPCError({ code: "UNAUTHORIZED" }); } return { id: session.user.id, username: session.user.name, email: session.user.email, }; }), });