38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
/**
|
|
* This is the API-handler of your app that contains all your API routes.
|
|
* On a bigger app, you will probably want to split this file up into multiple files.
|
|
*/
|
|
import { createNuxtApiHandler } from 'trpc-nuxt'
|
|
import { z } from 'zod'
|
|
|
|
import { publicProcedure, router } from '~/server/trpc/trpc'
|
|
import { createContext } from '~~/server/trpc/context';
|
|
import NotesService from '~~/lib/services/notes.service';
|
|
|
|
export const appRouter = router({
|
|
notes: publicProcedure
|
|
.input(
|
|
z.object({
|
|
text: z.string().nullish(),
|
|
}),
|
|
)
|
|
.query(async ({ ctx, input }) => {
|
|
const notesService = new NotesService(ctx.prisma);
|
|
const notes = await notesService.getNotesForAccountId(ctx.dbUser.membership?.account_id);
|
|
return {
|
|
notes,
|
|
}
|
|
}),
|
|
})
|
|
|
|
// export only the type definition of the API
|
|
// None of the actual implementation is exposed to the client
|
|
export type AppRouter = typeof appRouter;
|
|
|
|
// export API handler
|
|
export default createNuxtApiHandler({
|
|
router: appRouter,
|
|
createContext: createContext,
|
|
onError({ error}) { console.error(error)}, // TODO - logging and reporting
|
|
})
|