const includableFields = z.enum([
"comments",
"readingProgress",
"novelInsights",
"author",
"userLists",
// ...
]);
export const novelRouter = createTRPCRouter({
getById: privateProcedure
.input(
z.object({
id: z.string(),
include: z.array(includableFields).optional(),
})
)
.query(async ({ ctx, input }) => {
return await ctx.db.novel.findUnique({
where: {
id: input.id,
},
include: {
comments: input.include?.includes("comments") ?? false,
readingProgress:
input.include?.includes("readingProgress") ?? false,
novelInsights:
input.include?.includes("novelInsights") ?? false,
author: input.include?.includes("author") ?? false,
userLists: input.include?.includes("userLists") ?? false,
chapters: input.include?.includes("chapters") ?? false,
genre: input.include?.includes("genre") ?? false,
customInsights:
input.include?.includes("customInsights") ?? false,
},
});
}),
});
const includableFields = z.enum([
"comments",
"readingProgress",
"novelInsights",
"author",
"userLists",
// ...
]);
export const novelRouter = createTRPCRouter({
getById: privateProcedure
.input(
z.object({
id: z.string(),
include: z.array(includableFields).optional(),
})
)
.query(async ({ ctx, input }) => {
return await ctx.db.novel.findUnique({
where: {
id: input.id,
},
include: {
comments: input.include?.includes("comments") ?? false,
readingProgress:
input.include?.includes("readingProgress") ?? false,
novelInsights:
input.include?.includes("novelInsights") ?? false,
author: input.include?.includes("author") ?? false,
userLists: input.include?.includes("userLists") ?? false,
chapters: input.include?.includes("chapters") ?? false,
genre: input.include?.includes("genre") ?? false,
customInsights:
input.include?.includes("customInsights") ?? false,
},
});
}),
});