+server.js 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. import auth from "$lib/server/auth.js";
  2. import Recipe from "$lib/server/models/Recipe.js";
  3. import {error, json} from "@sveltejs/kit";
  4. export async function POST({request, cookies}){
  5. const user = await auth(cookies, false);
  6. const body = await request.json();
  7. if(!body.name) error(400, "Recipe name required");
  8. if(body.ingredients.length <= 0) error(400, "Ingredients required");
  9. if(body.steps.length <= 0) error(400, "Preparation steps required");
  10. for(let i = 0; i < body.ingredients.length; i++){
  11. if(body.ingredients[i].quantity <= 0) error(400, "Quantity must be greater than 0");
  12. if(!body.ingredients[i].name) error(400, "Ingredient name required");
  13. }
  14. const recipe = new Recipe({
  15. user: user._id,
  16. name: body.name,
  17. ingredients: body.ingredients,
  18. steps: body.steps,
  19. notes: body.notes,
  20. createdAt: new Date(),
  21. updatedAt: new Date()
  22. });
  23. await recipe.save();
  24. return json({id: recipe._id.toString()}, {status: 201});
  25. }