53 lines
952 B
TypeScript
53 lines
952 B
TypeScript
import type { User, Note } from "@prisma/client";
|
|
|
|
import { prisma } from "~/db.server";
|
|
|
|
export function getNote({
|
|
id,
|
|
userId,
|
|
}: Pick<Note, "id"> & {
|
|
userId: User["id"];
|
|
}) {
|
|
return prisma.note.findFirst({
|
|
select: { id: true, body: true, title: true },
|
|
where: { id, userId },
|
|
});
|
|
}
|
|
|
|
export function getNoteListItems({ userId }: { userId: User["id"] }) {
|
|
return prisma.note.findMany({
|
|
where: { userId },
|
|
select: { id: true, title: true },
|
|
orderBy: { updatedAt: "desc" },
|
|
});
|
|
}
|
|
|
|
export function createNote({
|
|
body,
|
|
title,
|
|
userId,
|
|
}: Pick<Note, "body" | "title"> & {
|
|
userId: User["id"];
|
|
}) {
|
|
return prisma.note.create({
|
|
data: {
|
|
title,
|
|
body,
|
|
user: {
|
|
connect: {
|
|
id: userId,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
}
|
|
|
|
export function deleteNote({
|
|
id,
|
|
userId,
|
|
}: Pick<Note, "id"> & { userId: User["id"] }) {
|
|
return prisma.note.deleteMany({
|
|
where: { id, userId },
|
|
});
|
|
}
|