Files
freno-dev/src/server/api/routers/example.ts
2025-12-16 23:31:12 -05:00

35 lines
835 B
TypeScript

import { wrap } from "@typeschema/valibot";
import { string } from "valibot";
import {
createTRPCRouter,
publicProcedure,
protectedProcedure,
adminProcedure
} from "../utils";
export const exampleRouter = createTRPCRouter({
hello: publicProcedure
.input(wrap(string()))
.query(({ input }) => {
return `Hello ${input}!`;
}),
// Example of a protected procedure (requires authentication)
getProfile: protectedProcedure.query(({ ctx }) => {
return {
userId: ctx.userId,
privilegeLevel: ctx.privilegeLevel,
message: "You are authenticated!",
};
}),
// Example of an admin-only procedure
adminDashboard: adminProcedure.query(({ ctx }) => {
return {
userId: ctx.userId,
message: "Welcome to the admin dashboard!",
isAdmin: true,
};
}),
});