created list schema

This commit is contained in:
2024-11-23 09:05:24 -06:00
parent 8393ec9f49
commit 66662220e7
5 changed files with 66 additions and 21 deletions

View File

@@ -1,29 +1,35 @@
import { and, eq } from "drizzle-orm";
import { z } from "zod";
import {
listCreationFormSchema,
listNameSchema,
listTitleSchema,
} from "~/lib/schemas/list-creation-form";
import { createTRPCRouter, protectedProcedure } from "~/server/api/trpc";
import { lists } from "~/server/db/schema";
export const listRouter = createTRPCRouter({
create: protectedProcedure
.input(listCreationFormSchema)
.mutation(async ({ ctx, input }) => {
return [];
}),
.mutation(({ ctx, input }) =>
ctx.db.insert(lists).values({
userId: ctx.session.user.id,
title: input.title,
variant: input.variant,
labels: input.labels.join(","),
showId: input.id,
idPrefix: input.idPrefix,
}),
),
getAll: protectedProcedure.query(async ({ ctx }) => {
return [
{ id: 0, name: "Groceries" },
{ id: 1, name: "Christmas" },
{ id: 2, name: "Salt Seeker" },
{ id: 3, name: "Maize Walker" },
{ id: 4, name: "Sympathy for the Machine" },
{
id: 5,
name: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor elit incididunt ut labore et dolore magna aliqua.",
},
];
const allLists = await ctx.db.query.lists.findMany({
where: and(eq(lists.userId, ctx.session.user.id)),
});
const formattedLists = allLists.map((list) => ({
...list,
labels: list.labels?.split(",") ?? [],
}));
return formattedLists;
}),
get: protectedProcedure
.input(z.object({ listId: z.coerce.number() }))
@@ -31,7 +37,7 @@ export const listRouter = createTRPCRouter({
return { name: "Groceries", tasks: [] };
}),
update: protectedProcedure
.input(z.object({ listId: z.number(), name: listNameSchema }))
.input(z.object({ listId: z.number(), title: listTitleSchema }))
.mutation(async ({ ctx, input }) => {
return [];
}),