Skip to content

Commit 8342d2d

Browse files
author
Mike Nikles
committed
Use @prisma/client.
1 parent e9c9080 commit 8342d2d

File tree

2 files changed

+29
-14
lines changed

2 files changed

+29
-14
lines changed

src/lib/prisma.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import Prisma, * as PrismaAll from "@prisma/client";
2+
3+
const PrismaClient = Prisma?.PrismaClient || PrismaAll?.PrismaClient;
4+
export default PrismaClient;

src/routes/todos/_api.ts

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,47 @@
11
import type { Request } from "@sveltejs/kit";
2+
import PrismaClient from "$lib/prisma";
23

3-
// TODO: Persist in database
4-
let todos: Todo[] = [];
4+
const prisma = new PrismaClient();
55

6-
export const api = (request: Request, data?: Record<string, unknown>) => {
6+
export const api = async (request: Request, data?: Record<string, unknown>) => {
77
let body = {};
88
let status = 500;
99

1010
switch (request.method.toUpperCase()) {
1111
case "GET":
12-
body = todos;
12+
body = await prisma.todo.findMany();
1313
status = 200;
1414
break;
1515
case "POST":
16-
todos.push(data as Todo);
17-
body = data;
16+
body = await prisma.todo.create({
17+
data: {
18+
created_at: data.created_at as Date,
19+
done: data.done as boolean,
20+
text: data.text as string
21+
}
22+
})
1823
status = 201;
1924
break;
2025
case "DELETE":
21-
todos = todos.filter(todo => todo.uid !== request.params.uid)
26+
body = await prisma.todo.delete({
27+
where: {
28+
uid: request.params.uid
29+
}
30+
})
31+
// todos = todos.filter(todo => todo.uid !== request.params.uid)
2232
status = 200;
2333
break;
2434
case "PATCH":
25-
todos = todos.map(todo => {
26-
if (todo.uid === request.params.uid) {
27-
if (data.text) todo.text = data.text as string;
28-
else todo.done = data.done as boolean;
35+
body = await prisma.todo.update({
36+
where: {
37+
uid: request.params.uid
38+
},
39+
data: {
40+
done: data.done,
41+
text: data.text
2942
}
30-
return todo;
31-
});
43+
})
3244
status = 200;
33-
body = todos.find(todo => todo.uid === request.params.uid);
3445
break;
3546

3647
default:

0 commit comments

Comments
 (0)