homepage/+page.server.ts
2023-06-24 15:35:36 +02:00

66 lines
1.5 KiB
TypeScript

import type { Actions, Load } from '@sveltejs/kit';
import { Recipe } from '../../../models/Recipe';
import { dbConnect, dbDisconnect } from '../../../utils/db';
import { redirect } from '@sveltejs/kit';
export const load: Load = async () => {
await dbConnect();
let todos = await Recipe.find().lean();
await dbDisconnect();
todos = JSON.parse(JSON.stringify(todos));
todos = todos.reverse();
return {
todos,
};
};
export const actions: Actions = {
create: async ({ request }) => {
const formData = await request.formData();
const todoName = formData.get('todoName');
const newTodo = {
title: todoName,
isDone: false,
};
await dbConnect();
await Recipe.create(newTodo);
await dbDisconnect();
console.log('New todo added: ', newTodo);
return {
success: true,
};
},
update: async ({ request }) => {
const formData = await request.formData();
const todoId = formData.get('todoId');
const todoName = formData.get('todoName');
await dbConnect();
await Recipe.findByIdAndUpdate(todoId, {
title: todoName,
}).lean();
await dbDisconnect();
console.log('Todo updated: ', todoId);
return {
success: true,
};
},
delete: async ({ request }) => {
const formData = await request.formData();
const todoId = formData.get('todoId');
await dbConnect();
await Recipe.findByIdAndDelete(todoId);
await dbDisconnect();
console.log('Todo deleted: ', todoId);
return {
success: true,
};
},
};