PromucFlow_constructor/app/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
..
.run feat: Added application templates (#10952) 2022-02-09 23:13:31 +06:00
appsmith-git chore: Upgraded Spring Boot and Spring to intermediate ver (#18844) 2022-12-22 15:59:20 +05:30
appsmith-interfaces fix: Add error message for protected branch (#18737) 2022-12-16 12:07:40 +05:30
appsmith-plugins fix: Improved error message for google sheet insert/update empty body (#18558) 2022-12-21 19:00:02 +05:30
appsmith-server feat: Adding Navigation Settings Functionality (#19272) 2022-12-29 12:39:12 +00:00
envs Revert "ci:update env variable" (#18607) 2022-12-01 16:08:02 +05:30
mongo-seed
reactive-caching chore: Move to Jupiter JUnit5 (#17083) 2022-09-29 08:54:07 +05:30
scripts feat: migrate from org to workspace under phase 3 (#14158) 2022-07-20 17:24:16 +05:30
.gitignore
build.sh feat: RBAC framework (#14823) 2022-08-22 23:27:07 +05:30
buildpack-run.sh
docker-compose.yml
Dockerfile Add healthcheck to docker (#13154) 2022-05-06 11:45:56 +05:30
entrypoint.sh
pom.xml chore: Upgraded Spring Boot and Spring to intermediate ver (#18844) 2022-12-22 15:59:20 +05:30
Procfile
README.md ci: Modularizing the Github actions workflow for maintainability (#16505) 2022-09-09 01:08:55 +05:30
system.properties

Appsmith Server

This is the server-side repository for the Appsmith framework.

For details on setting up your development machine, please refer to this Setup Guide.