Add todo example, remove yarn, change schema structure, update readme

This commit is contained in:
Aman Varshney
2025-03-24 00:04:53 +05:30
parent 5076bf4176
commit 4cc13bf382
42 changed files with 525 additions and 443 deletions

View File

@@ -1,20 +1,3 @@
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgres"
url = env("DATABASE_URL")
}
model Todo {
id Int @id @default(autoincrement())
text String
completed Boolean @default(false)
@@map("todo")
}
model User {
id String @id @map("_id")
name String

View File

@@ -0,0 +1,9 @@
generator client {
provider = "prisma-client-js"
previewFeatures = ["prismaSchemaFolder"]
}
datasource db {
provider = "postgres"
url = env("DATABASE_URL")
}

View File

@@ -1,12 +1,3 @@
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgres"
url = env("DATABASE_URL")
}
model Todo {
id Int @id @default(autoincrement())
text String

View File

@@ -1,55 +0,0 @@
import { TRPCError } from "@trpc/server";
import { z } from "zod";
import prisma from "../../prisma";
import { publicProcedure, router } from "../lib/trpc";
export const todoRouter = router({
getAll: publicProcedure.query(async () => {
return await prisma.todo.findMany({
orderBy: {
id: "asc"
}
});
}),
create: publicProcedure
.input(z.object({ text: z.string().min(1) }))
.mutation(async ({ input }) => {
return await prisma.todo.create({
data: {
text: input.text,
},
});
}),
toggle: publicProcedure
.input(z.object({ id: z.number(), completed: z.boolean() }))
.mutation(async ({ input }) => {
try {
return await prisma.todo.update({
where: { id: input.id },
data: { completed: input.completed },
});
} catch (error) {
throw new TRPCError({
code: "NOT_FOUND",
message: "Todo not found",
});
}
}),
delete: publicProcedure
.input(z.object({ id: z.number() }))
.mutation(async ({ input }) => {
try {
return await prisma.todo.delete({
where: { id: input.id },
});
} catch (error) {
throw new TRPCError({
code: "NOT_FOUND",
message: "Todo not found",
});
}
}),
});