PromucFlow_constructor/app/server/appsmith-server
Nilansh Bansal 6e4805d5bd
feat: Adding Navigation Settings Functionality (#19272)
## Description
 
> This PR implements backend model and APIs for Part 1 of Improved App
Viewer Navigation Project i.e implementing the navigation configuration
settings
> [Notion
Doc](https://www.notion.so/appsmith/Improved-app-viewer-navigation-6126afa2a3694cad84382874a3f1bd9d#9d20423e53a54ec898083ab41f388af2)
> [Figma
Design](https://www.figma.com/proto/EkPT7FdqmArkk9L7mySA5S/NAV---Designs?page-id=748%3A313757&node-id=935%3A478734&viewport=303%2C-336%2C0.04&scaling=min-zoom&starting-point-node-id=935%3A478734)


Implements #19163 

## Implementation

It reuses the following existing APIs to implement storing and fetching
navigation settings:

/api/v1/applications/{applicationId} (PUT)
/api/v1/pages?applicationId=\<applicationId>(GET)

Additional fields `unpublishedNavigationSetting` and
`publishedNavigationSetting` have been added to the `application`
collection.


## Type of change
- New feature (non-breaking change which adds functionality)


## How Has This Been Tested?
- Manual

## Testing Results
> Postman testing results attached below

**Update publishedNavigationSetting API**

- API Route: /api/v1/applications/{applicationId}
- API Method: PUT
- API JSON Response:
[http://jsonblob.com/1057577523797573632](http://jsonblob.com/1057577523797573632)

<img width="818" alt="image"
src="https://user-images.githubusercontent.com/25542733/209783302-284cc505-fd78-43c7-8cd1-10b3d7295914.png">

**Update unpublishedNavigationSetting API**

- API Route: /api/v1/applications/{applicationId}
- API Method: PUT
- API JSON Response:
[http://jsonblob.com/1057578112661078016](http://jsonblob.com/1057578112661078016)

<img width="702" alt="image"
src="https://user-images.githubusercontent.com/25542733/209783640-97189e85-04a9-490b-b766-8f8fca908633.png">

**Database Record**

<img width="566" alt="image"
src="https://user-images.githubusercontent.com/25542733/209784012-58556a22-90a1-4d79-b99a-cc652415f5a6.png">

**GET Published and Unpublished Navigation Settings API**

- API Route: /api/v1/pages?applicationId=\<applicationId>
- API Method: GET
- API JSON Response:
[http://jsonblob.com/1057580262598393856](http://jsonblob.com/1057580262598393856)

<img width="732" alt="image"
src="https://user-images.githubusercontent.com/25542733/209784732-27340689-6616-404a-8cf7-dfb60737dc5c.png">






## Checklist:
### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [x] PR is being merged under a feature flag


### QA activity:
- [ ] Test plan has been approved by relevant developers
- [ ] Test plan has been peer reviewed by QA
- [ ] Cypress test cases have been added and approved by either SDET or
manual QA
- [ ] Organized project review call with relevant stakeholders after
Round 1/2 of QA
- [ ] Added Test Plan Approved label after reveiwing all Cypress test
2022-12-29 12:39:12 +00:00
..
src feat: Adding Navigation Settings Functionality (#19272) 2022-12-29 12:39:12 +00:00
auth-notes
pom.xml chore: Flapdoodle version upgrade to 3.5.0 (#17609) 2022-10-17 13:18:28 +05:30