ChickenKyiv / ChickenKyiv/recipe-api-only

Menu. Advanced(not finished)

Open
#80 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
37
Forks
11
PR merge metrics
No merged PRs in 30d

Description

Have status: publish, draft.
When status **publish** - we can display it on menus list(task: update remote method, when we're calling getMenus) #76
(task: attach menus to user, by userId)

**Menu.Edit**
When we want to make changes(update menu) -> we need to clone it with content, assign to user and then apply our changes. **ACL** only user, who made an updates, can with this menu.
Menus, published by chiefs, can be view-able by all users(or if we'll have separation by dishes types) filtered by this types too.

Menu can have types(**related to allergies or dishes only?**) #76
So, if Menu1 have Recipe1 with peanuts allergy and User1 don't want to have recipes with peanuts allergy - we need to remove this recipeId from User1 Menu(not sure if we need to make a clone of this menu for this situation. maybe we need it).

If we attach Recipe1 with allergy to a Menu1 with this allergy restriction, we need to generate error and show message: 'You cannot attach this recipe with allergy to Menu...'

User can add allergies filter #75 to their account, so we'll filter recipes on menu.

When user decide to update recipe(change serving, change/remove ingredients from recipe -> we need to clone recipe and upgrade it)
We need to clone Menu and update this particular recipeId
Also we need to attach this Menu to User

When we run **clone** method - we check if this menu have grocery_id - we must regenerate grocery list.
Case: we add to grocery list some items, not related to menus, and then we need to regenerate grocery list - we can loose this items.

Split grocery list to two sections.
**Section1** - items from recipes from menu, **Section2** - added items by hands.

- [ ] Delete Recipe from Menu
- [ ] Change Order of Recipes in menu
- [ ] Update structure from
`menu: recipes: [recipeId, recipeId]` to `menu:recipes: {monday: [recipeid, recipeId], tuesday: [recipeid, recipeid]}` or `menu:calendar:{monday: [recipeid, recipeId], tuesday: [recipeid, recipeid]}`
- [ ] Then update remote methods, that can be broken with this structure updates

- [ ] Update menu date(move it to the next week, of +2 weeks from published date)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the existing getMenus remote method and the current Menu, Recipe, and grocery-list relationships. The issue is done only when the listed menu editing, ordering, calendar, publication, filtering, cloning, and grocery-list behaviors are specified and implemented, with broken remote methods updated.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.