index.ts 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import {
  2. Menu
  3. } from "../../../models";
  4. import {
  5. UpdateMenuResult,
  6. UpdateMenuInput
  7. } from "./types";
  8. const updateMenu = async (userID: string, input: UpdateMenuInput): Promise<UpdateMenuResult> => {
  9. try {
  10. const {
  11. menuID,
  12. ...updateFields
  13. } = input;
  14. const updatedMenu = await Menu.findOneAndUpdate(
  15. {
  16. _id: menuID,
  17. userID
  18. },
  19. {
  20. $set: updateFields
  21. },
  22. {
  23. new: true
  24. }
  25. );
  26. if (!updatedMenu) {
  27. return {
  28. message: "menu-not-found",
  29. code: 404
  30. };
  31. }
  32. return {
  33. message: "menu-updated-successfully",
  34. code: 200,
  35. payload: updatedMenu
  36. };
  37. } catch (error) {
  38. console.error("UpdateMenu error:", error);
  39. return {
  40. message: "internal-server-error",
  41. code: 500
  42. };
  43. }
  44. };
  45. export default updateMenu;