+server.js 1.0 KB

1234567891011121314151617181920212223242526272829303132
  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. private: body.private
  23. });
  24. await recipe.save();
  25. return json({id: recipe._id.toString()}, {status: 201});
  26. }