From c295d0618af220fd6fae4d8816bcfdb92c976713 Mon Sep 17 00:00:00 2001 From: sidhantgoel Date: Wed, 22 Mar 2023 13:12:50 +0530 Subject: [PATCH] reverted jsonview changes on controllers (#21626) This PR reverts the changes on controller method that happened by mistake. It adds JsonView annotation on all controller methods. Earlier PR: https://github.com/appsmithorg/appsmith/pull/20086 --- .../ce/ActionCollectionControllerCE.java | 11 ++++++++ .../controllers/ce/ActionControllerCE.java | 12 ++++++++ .../ce/ApplicationControllerCE.java | 28 +++++++++++++++++++ .../ce/ApplicationTemplateControllerCE.java | 10 +++++++ .../controllers/ce/AssetControllerCE.java | 4 +++ .../server/controllers/ce/BaseController.java | 8 ++++++ .../controllers/ce/ConfigControllerCE.java | 5 ++++ .../ce/CustomJSLibControllerCE.java | 7 +++++ .../ce/DatasourceControllerCE.java | 12 ++++++++ .../controllers/ce/GitControllerCE.java | 28 +++++++++++++++++++ .../ce/HealthCheckControllerCE.java | 4 +++ .../controllers/ce/IndexControllerCE.java | 5 ++++ .../ce/InstanceAdminControllerCE.java | 9 ++++++ .../controllers/ce/ItemControllerCE.java | 5 ++++ .../controllers/ce/LayoutControllerCE.java | 9 ++++++ .../ce/MarketplaceControllerCE.java | 7 +++++ .../ce/NotificationControllerCE.java | 6 ++++ .../controllers/ce/PageControllerCE.java | 15 ++++++++++ .../controllers/ce/PluginControllerCE.java | 7 +++++ .../controllers/ce/ProviderControllerCE.java | 4 +++ .../ce/RestApiImportControllerCE.java | 7 +++++ .../controllers/ce/SaasControllerCE.java | 5 ++++ .../controllers/ce/TenantControllerCE.java | 4 +++ .../controllers/ce/ThemeControllerCE.java | 8 ++++++ .../ce/UsagePulseControllerCE.java | 4 +++ .../controllers/ce/UserControllerCE.java | 20 +++++++++++++ .../controllers/ce/WorkspaceControllerCE.java | 7 +++++ 27 files changed, 251 insertions(+) diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ActionCollectionControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ActionCollectionControllerCE.java index 09485f496d..3399025fa1 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ActionCollectionControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ActionCollectionControllerCE.java @@ -1,5 +1,6 @@ package com.appsmith.server.controllers.ce; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.FieldName; import com.appsmith.server.constants.Url; import com.appsmith.server.dtos.ActionCollectionDTO; @@ -11,6 +12,8 @@ import com.appsmith.server.dtos.RefactorActionNameInCollectionDTO; import com.appsmith.server.dtos.ResponseDTO; import com.appsmith.server.services.ActionCollectionService; import com.appsmith.server.services.LayoutCollectionService; +import com.fasterxml.jackson.annotation.JsonView; + import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -43,6 +46,7 @@ public class ActionCollectionControllerCE { this.layoutCollectionService = layoutCollectionService; } + @JsonView(Views.Public.class) @PostMapping @ResponseStatus(HttpStatus.CREATED) public Mono> create(@Valid @RequestBody ActionCollectionDTO resource, @@ -52,6 +56,7 @@ public class ActionCollectionControllerCE { .map(created -> new ResponseDTO<>(HttpStatus.CREATED.value(), created, null)); } + @JsonView(Views.Public.class) @GetMapping("") public Mono>> getAllUnpublishedActionCollections( @RequestParam MultiValueMap params, @@ -62,6 +67,7 @@ public class ActionCollectionControllerCE { .map(resources -> new ResponseDTO<>(HttpStatus.OK.value(), resources, null)); } + @JsonView(Views.Public.class) @PutMapping("/move") public Mono> moveActionCollection(@RequestBody @Valid ActionCollectionMoveDTO actionCollectionMoveDTO, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -70,6 +76,7 @@ public class ActionCollectionControllerCE { .map(actionCollection -> new ResponseDTO<>(HttpStatus.OK.value(), actionCollection, null)); } + @JsonView(Views.Public.class) @PutMapping("/refactor") public Mono> refactorActionCollectionName(@RequestBody RefactorActionCollectionNameDTO refactorActionCollectionNameDTO, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -77,6 +84,7 @@ public class ActionCollectionControllerCE { .map(created -> new ResponseDTO<>(HttpStatus.OK.value(), created, null)); } + @JsonView(Views.Public.class) @GetMapping("/view") public Mono>> getAllPublishedActionCollections(@RequestParam String applicationId, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -86,6 +94,7 @@ public class ActionCollectionControllerCE { .map(resources -> new ResponseDTO<>(HttpStatus.OK.value(), resources, null)); } + @JsonView(Views.Public.class) @PutMapping("/{id}") public Mono> updateActionCollection(@PathVariable String id, @Valid @RequestBody ActionCollectionDTO resource, @@ -95,6 +104,7 @@ public class ActionCollectionControllerCE { .map(updatedResource -> new ResponseDTO<>(HttpStatus.OK.value(), updatedResource, null)); } + @JsonView(Views.Public.class) @PutMapping("/refactorAction") public Mono> refactorActionCollection(@Valid @RequestBody RefactorActionNameInCollectionDTO resource, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -103,6 +113,7 @@ public class ActionCollectionControllerCE { .map(updatedResource -> new ResponseDTO<>(HttpStatus.OK.value(), updatedResource, null)); } + @JsonView(Views.Public.class) @DeleteMapping("/{id}") public Mono> deleteActionCollection(@PathVariable String id, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ActionControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ActionControllerCE.java index d8de9abbfd..1f430c5f39 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ActionControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ActionControllerCE.java @@ -1,6 +1,7 @@ package com.appsmith.server.controllers.ce; import com.appsmith.external.models.ActionExecutionResult; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.FieldName; import com.appsmith.server.constants.Url; import com.appsmith.external.models.ActionDTO; @@ -12,6 +13,8 @@ import com.appsmith.server.dtos.ResponseDTO; import com.appsmith.server.services.LayoutActionService; import com.appsmith.server.services.NewActionService; import com.appsmith.server.solutions.RefactoringSolution; +import com.fasterxml.jackson.annotation.JsonView; + import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -52,6 +55,7 @@ public class ActionControllerCE { this.refactoringSolution = refactoringSolution; } + @JsonView(Views.Public.class) @PostMapping @ResponseStatus(HttpStatus.CREATED) public Mono> createAction(@Valid @RequestBody ActionDTO resource, @@ -63,6 +67,7 @@ public class ActionControllerCE { .map(created -> new ResponseDTO<>(HttpStatus.CREATED.value(), created, null)); } + @JsonView(Views.Public.class) @PutMapping("/{defaultActionId}") public Mono> updateAction(@PathVariable String defaultActionId, @Valid @RequestBody ActionDTO resource, @@ -72,6 +77,7 @@ public class ActionControllerCE { .map(updatedResource -> new ResponseDTO<>(HttpStatus.OK.value(), updatedResource, null)); } + @JsonView(Views.Public.class) @PostMapping(value = "/execute", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public Mono> executeAction(@RequestBody Flux partFlux, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName, @@ -80,6 +86,7 @@ public class ActionControllerCE { .map(updatedResource -> new ResponseDTO<>(HttpStatus.OK.value(), updatedResource, null)); } + @JsonView(Views.Public.class) @PutMapping("/move") public Mono> moveAction(@RequestBody @Valid ActionMoveDTO actionMoveDTO, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -88,6 +95,7 @@ public class ActionControllerCE { .map(action -> new ResponseDTO<>(HttpStatus.OK.value(), action, null)); } + @JsonView(Views.Public.class) @PutMapping("/refactor") public Mono> refactorActionName(@RequestBody RefactorActionNameDTO refactorActionNameDTO, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -95,6 +103,7 @@ public class ActionControllerCE { .map(created -> new ResponseDTO<>(HttpStatus.OK.value(), created, null)); } + @JsonView(Views.Public.class) @GetMapping("/view") public Mono>> getActionsForViewMode(@RequestParam String applicationId, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -102,6 +111,7 @@ public class ActionControllerCE { .map(actions -> new ResponseDTO<>(HttpStatus.OK.value(), actions, null)); } + @JsonView(Views.Public.class) @PutMapping("/executeOnLoad/{defaultActionId}") public Mono> setExecuteOnLoad(@PathVariable String defaultActionId, @RequestParam Boolean flag, @@ -111,6 +121,7 @@ public class ActionControllerCE { .map(action -> new ResponseDTO<>(HttpStatus.OK.value(), action, null)); } + @JsonView(Views.Public.class) @DeleteMapping("/{id}") public Mono> deleteAction(@PathVariable String id, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -129,6 +140,7 @@ public class ActionControllerCE { * @param params * @return */ + @JsonView(Views.Public.class) @GetMapping("") public Mono>> getAllUnpublishedActions(@RequestParam MultiValueMap params, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ApplicationControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ApplicationControllerCE.java index 2c182e08c9..988700c185 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ApplicationControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ApplicationControllerCE.java @@ -1,6 +1,7 @@ package com.appsmith.server.controllers.ce; import com.appsmith.external.models.Datasource; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.FieldName; import com.appsmith.server.constants.Url; import com.appsmith.server.domains.Application; @@ -24,6 +25,7 @@ import com.appsmith.server.solutions.ApplicationFetcher; import com.appsmith.server.solutions.ApplicationForkingService; import com.appsmith.server.solutions.ImportExportApplicationService; import jakarta.validation.Valid; +import com.fasterxml.jackson.annotation.JsonView; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; @@ -78,6 +80,7 @@ public class ApplicationControllerCE extends BaseController> create(@Valid @RequestBody Application resource, @@ -91,6 +94,7 @@ public class ApplicationControllerCE extends BaseController new ResponseDTO<>(HttpStatus.CREATED.value(), created, null)); } + @JsonView(Views.Public.class) @PostMapping("/publish/{defaultApplicationId}") public Mono> publish(@PathVariable String defaultApplicationId, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -98,6 +102,7 @@ public class ApplicationControllerCE extends BaseController(HttpStatus.OK.value(), true, null)); } + @JsonView(Views.Public.class) @PutMapping("/{defaultApplicationId}/page/{defaultPageId}/makeDefault") public Mono> makeDefault(@PathVariable String defaultApplicationId, @PathVariable String defaultPageId, @@ -106,6 +111,7 @@ public class ApplicationControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), updatedApplication, null)); } + @JsonView(Views.Public.class) @PutMapping("/{defaultApplicationId}/page/{defaultPageId}/reorder") public Mono> reorderPage( @PathVariable String defaultApplicationId, @@ -117,6 +123,7 @@ public class ApplicationControllerCE extends BaseController> delete(@PathVariable String id, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -125,6 +132,7 @@ public class ApplicationControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), deletedResource, null)); } + @JsonView(Views.Public.class) @GetMapping("/new") public Mono> getAllApplicationsForHome() { log.debug("Going to get all applications grouped by workspace"); @@ -132,6 +140,7 @@ public class ApplicationControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), applications, null)); } + @JsonView(Views.Public.class) @GetMapping("/releaseItems") public Mono> getReleaseItemsInformation() { log.debug("Going to get version release items"); @@ -139,6 +148,7 @@ public class ApplicationControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), applications, null)); } + @JsonView(Views.Public.class) @PutMapping("/{defaultApplicationId}/changeAccess") public Mono> shareApplication(@PathVariable String defaultApplicationId, @RequestBody ApplicationAccessDTO applicationAccessDTO, @@ -148,6 +158,7 @@ public class ApplicationControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), application, null)); } + @JsonView(Views.Public.class) @PostMapping("/clone/{applicationId}") public Mono> cloneApplication(@PathVariable String applicationId, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -155,6 +166,7 @@ public class ApplicationControllerCE extends BaseController new ResponseDTO<>(HttpStatus.CREATED.value(), created, null)); } + @JsonView(Views.Public.class) @GetMapping("/view/{defaultApplicationId}") public Mono> getApplicationInViewMode(@PathVariable String defaultApplicationId, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -162,6 +174,7 @@ public class ApplicationControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), application, null)); } + @JsonView(Views.Public.class) @PostMapping("/{defaultApplicationId}/fork/{workspaceId}") public Mono> forkApplication( @PathVariable String defaultApplicationId, @@ -171,6 +184,7 @@ public class ApplicationControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), application, null)); } + @JsonView(Views.Public.class) @GetMapping("/export/{id}") public Mono> getApplicationFile(@PathVariable String id, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -184,6 +198,7 @@ public class ApplicationControllerCE extends BaseController> createSnapshot(@PathVariable String id, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -193,6 +208,7 @@ public class ApplicationControllerCE extends BaseController new ResponseDTO<>(HttpStatus.CREATED.value(), result, null)); } + @JsonView(Views.Public.class) @GetMapping("/snapshot/{id}") public Mono> getSnapshotWithoutApplicationJson(@PathVariable String id, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { log.debug("Going to get snapshot with application id: {}, branch: {}", id, branchName); @@ -201,6 +217,7 @@ public class ApplicationControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), applicationSnapshot, null)); } + @JsonView(Views.Public.class) @DeleteMapping("/snapshot/{id}") public Mono> deleteSnapshotWithoutApplicationJson(@PathVariable String id, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { log.debug("Going to delete snapshot with application id: {}, branch: {}", id, branchName); @@ -209,6 +226,7 @@ public class ApplicationControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), isDeleted, null)); } + @JsonView(Views.Public.class) @PostMapping("/snapshot/{id}/restore") public Mono> restoreSnapshot(@PathVariable String id, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { log.debug("Going to restore snapshot with application id: {}, branch: {}", id, branchName); @@ -217,6 +235,8 @@ public class ApplicationControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), application, null)); } + + @JsonView(Views.Public.class) @PostMapping(value = "/import/{workspaceId}", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public Mono> importApplicationFromFile(@RequestPart("file") Mono fileMono, @PathVariable String workspaceId) { @@ -226,6 +246,7 @@ public class ApplicationControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), fetchedResource, null)); } + @JsonView(Views.Public.class) @PostMapping("/ssh-keypair/{applicationId}") public Mono> generateSSHKeyPair(@PathVariable String applicationId, @RequestParam(required = false) String keyType) { @@ -233,6 +254,7 @@ public class ApplicationControllerCE extends BaseController new ResponseDTO<>(HttpStatus.CREATED.value(), created, null)); } + @JsonView(Views.Public.class) @GetMapping("/ssh-keypair/{applicationId}") public Mono> getSSHKey(@PathVariable String applicationId) { return service.getSshKey(applicationId) @@ -240,6 +262,7 @@ public class ApplicationControllerCE extends BaseController> update(@PathVariable String defaultApplicationId, @RequestBody Application resource, @@ -249,18 +272,21 @@ public class ApplicationControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), updatedResource, null)); } + @JsonView(Views.Public.class) @PatchMapping("{applicationId}/themes/{themeId}") public Mono> setCurrentTheme(@PathVariable String applicationId, @PathVariable String themeId, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { return themeService.changeCurrentTheme(themeId, applicationId, branchName) .map(theme -> new ResponseDTO<>(HttpStatus.OK.value(), theme, null)); } + @JsonView(Views.Public.class) @GetMapping("/import/{workspaceId}/datasources") public Mono>> getUnConfiguredDatasource(@PathVariable String workspaceId, @RequestParam String defaultApplicationId) { return importExportApplicationService.findDatasourceByApplicationId(defaultApplicationId, workspaceId) .map(result -> new ResponseDTO<>(HttpStatus.OK.value(), result, null)); } + @JsonView(Views.Public.class) @PostMapping(value = "/{defaultApplicationId}/logo", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public Mono> uploadAppNavigationLogo(@PathVariable String defaultApplicationId, @RequestPart("file") Mono fileMono, @@ -270,6 +296,7 @@ public class ApplicationControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), url, null)); } + @JsonView(Views.Public.class) @DeleteMapping("/{defaultApplicationId}/logo") public Mono> deleteAppNavigationLogo(@PathVariable String defaultApplicationId, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName){ @@ -280,6 +307,7 @@ public class ApplicationControllerCE extends BaseController>> getAll(@RequestParam MultiValueMap params, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ApplicationTemplateControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ApplicationTemplateControllerCE.java index 1fb74765da..2c37fc8eb6 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ApplicationTemplateControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ApplicationTemplateControllerCE.java @@ -1,10 +1,13 @@ package com.appsmith.server.controllers.ce; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.FieldName; import com.appsmith.server.dtos.ApplicationImportDTO; import com.appsmith.server.dtos.ApplicationTemplate; import com.appsmith.server.dtos.ResponseDTO; import com.appsmith.server.services.ApplicationTemplateService; +import com.fasterxml.jackson.annotation.JsonView; + import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.util.MultiValueMap; @@ -27,30 +30,35 @@ public class ApplicationTemplateControllerCE { this.applicationTemplateService = applicationTemplateService; } + @JsonView(Views.Public.class) @GetMapping public Mono>> getAll() { return applicationTemplateService.getActiveTemplates(null) .map(templates -> new ResponseDTO<>(HttpStatus.OK.value(), templates, null)); } + @JsonView(Views.Public.class) @GetMapping("{templateId}") public Mono> getTemplateDetails(@PathVariable String templateId) { return applicationTemplateService.getTemplateDetails(templateId) .map(templates -> new ResponseDTO<>(HttpStatus.OK.value(), templates, null)); } + @JsonView(Views.Public.class) @GetMapping("{templateId}/similar") public Mono>> getSimilarTemplates(@PathVariable String templateId, @RequestParam MultiValueMap params) { return applicationTemplateService.getSimilarTemplates(templateId, params).collectList() .map(templates -> new ResponseDTO<>(HttpStatus.OK.value(), templates, null)); } + @JsonView(Views.Public.class) @GetMapping("filters") public Mono> getFilters() { return applicationTemplateService.getFilters() .map(filters -> new ResponseDTO<>(HttpStatus.OK.value(), filters, null)); } + @JsonView(Views.Public.class) @PostMapping("{templateId}/import/{workspaceId}") public Mono> importApplicationFromTemplate(@PathVariable String templateId, @PathVariable String workspaceId) { @@ -58,12 +66,14 @@ public class ApplicationTemplateControllerCE { .map(importedApp -> new ResponseDTO<>(HttpStatus.OK.value(), importedApp, null)); } + @JsonView(Views.Public.class) @GetMapping("recent") public Mono>> getRecentlyUsedTemplates() { return applicationTemplateService.getRecentlyUsedTemplates() .map(templates -> new ResponseDTO<>(HttpStatus.OK.value(), templates, null)); } + @JsonView(Views.Public.class) @PostMapping("{templateId}/merge/{applicationId}/{organizationId}") public Mono> mergeTemplateWithApplication(@PathVariable String templateId, @PathVariable String applicationId, diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/AssetControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/AssetControllerCE.java index 00f31f4385..6a99bc2f3f 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/AssetControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/AssetControllerCE.java @@ -1,7 +1,10 @@ package com.appsmith.server.controllers.ce; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.Url; import com.appsmith.server.services.AssetService; +import com.fasterxml.jackson.annotation.JsonView; + import lombok.RequiredArgsConstructor; import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.GetMapping; @@ -16,6 +19,7 @@ public class AssetControllerCE { private final AssetService service; + @JsonView(Views.Public.class) @GetMapping("/{id}") public Mono getById(@PathVariable String id, ServerWebExchange exchange) { exchange.getResponse().getHeaders().set(HttpHeaders.CACHE_CONTROL, "public, max-age=7776000, immutable"); diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/BaseController.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/BaseController.java index e5b6158d9d..c31067a0cf 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/BaseController.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/BaseController.java @@ -1,9 +1,12 @@ package com.appsmith.server.controllers.ce; import com.appsmith.external.models.BaseDomain; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.FieldName; import com.appsmith.server.dtos.ResponseDTO; import com.appsmith.server.services.CrudService; +import com.fasterxml.jackson.annotation.JsonView; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; @@ -31,6 +34,7 @@ public abstract class BaseController, T extends Bas protected final S service; + @JsonView(Views.Public.class) @PostMapping @ResponseStatus(HttpStatus.CREATED) public Mono> create(@Valid @RequestBody T resource, @@ -49,6 +53,7 @@ public abstract class BaseController, T extends Bas * @param params * @return */ + @JsonView(Views.Public.class) @GetMapping("") public Mono>> getAll(@RequestParam MultiValueMap params, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -61,6 +66,7 @@ public abstract class BaseController, T extends Bas .map(resources -> new ResponseDTO<>(HttpStatus.OK.value(), resources, null)); } + @JsonView(Views.Public.class) @GetMapping("/{id}") public Mono> getByIdAndBranchName(@PathVariable ID id, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -69,6 +75,7 @@ public abstract class BaseController, T extends Bas .map(resources -> new ResponseDTO<>(HttpStatus.OK.value(), resources, null)); } + @JsonView(Views.Public.class) @PutMapping("/{id}") public Mono> update(@PathVariable ID id, @RequestBody T resource, @@ -78,6 +85,7 @@ public abstract class BaseController, T extends Bas .map(updatedResource -> new ResponseDTO<>(HttpStatus.OK.value(), updatedResource, null)); } + @JsonView(Views.Public.class) @DeleteMapping("/{id}") public Mono> delete(@PathVariable ID id, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ConfigControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ConfigControllerCE.java index f9f3230882..67fe3122d4 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ConfigControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ConfigControllerCE.java @@ -1,9 +1,12 @@ package com.appsmith.server.controllers.ce; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.Url; import com.appsmith.server.domains.Config; import com.appsmith.server.dtos.ResponseDTO; import com.appsmith.server.services.ConfigService; +import com.fasterxml.jackson.annotation.JsonView; + import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -20,12 +23,14 @@ public class ConfigControllerCE { this.service = service; } + @JsonView(Views.Public.class) @GetMapping("/name/{name}") public Mono> getByName(@PathVariable String name) { return service.getByName(name) .map(resource -> new ResponseDTO<>(HttpStatus.OK.value(), resource, null)); } + @JsonView(Views.Public.class) @PutMapping("/name/{name}") public Mono> updateByName(@PathVariable String name, @RequestBody Config config) { return service.updateByName(config) diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/CustomJSLibControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/CustomJSLibControllerCE.java index d351540386..73ce60ec90 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/CustomJSLibControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/CustomJSLibControllerCE.java @@ -1,10 +1,13 @@ package com.appsmith.server.controllers.ce; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.FieldName; import com.appsmith.server.constants.Url; import com.appsmith.server.domains.CustomJSLib; import com.appsmith.server.dtos.ResponseDTO; import com.appsmith.server.services.CustomJSLibService; +import com.fasterxml.jackson.annotation.JsonView; + import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; @@ -27,6 +30,7 @@ public class CustomJSLibControllerCE { this.customJSLibService = customJSLibService; } + @JsonView(Views.Public.class) @PatchMapping("/{applicationId}/add") public Mono> addJSLibToApplication(@RequestBody @Valid CustomJSLib customJSLib, @PathVariable String applicationId, @RequestHeader(name = @@ -38,6 +42,7 @@ public class CustomJSLibControllerCE { .map(actionCollection -> new ResponseDTO<>(HttpStatus.OK.value(), actionCollection, null)); } + @JsonView(Views.Public.class) @PatchMapping("/{applicationId}/remove") public Mono> removeJSLibFromApplication(@RequestBody @Valid CustomJSLib customJSLib, @PathVariable String applicationId, @@ -51,6 +56,7 @@ public class CustomJSLibControllerCE { .map(actionCollection -> new ResponseDTO<>(HttpStatus.OK.value(), actionCollection, null)); } + @JsonView(Views.Public.class) @GetMapping("/{applicationId}") public Mono>> getAllUserInstalledJSLibInApplication(@PathVariable String applicationId, @RequestHeader(name = @@ -61,6 +67,7 @@ public class CustomJSLibControllerCE { .map(actionCollection -> new ResponseDTO<>(HttpStatus.OK.value(), actionCollection, null)); } + @JsonView(Views.Public.class) @GetMapping("/{applicationId}/view") public Mono>> getAllUserInstalledJSLibInApplicationForViewMode(@PathVariable String applicationId, @RequestHeader(name =FieldName.BRANCH_NAME, diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/DatasourceControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/DatasourceControllerCE.java index 32db23c379..538e56e180 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/DatasourceControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/DatasourceControllerCE.java @@ -7,6 +7,7 @@ import com.appsmith.external.models.DatasourceTestResult; import com.appsmith.external.models.Property; import com.appsmith.external.models.TriggerRequestDTO; import com.appsmith.external.models.TriggerResultDTO; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.FieldName; import com.appsmith.server.constants.Url; import com.appsmith.server.dtos.AuthorizationCodeCallbackDTO; @@ -18,6 +19,8 @@ import com.appsmith.server.services.MockDataService; import com.appsmith.server.solutions.AuthenticationService; import com.appsmith.server.solutions.DatasourceStructureSolution; import com.appsmith.server.solutions.DatasourceTriggerSolution; +import com.fasterxml.jackson.annotation.JsonView; + import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.BooleanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -61,6 +64,7 @@ public class DatasourceControllerCE extends BaseController> testDatasource(@RequestBody Datasource datasource, @RequestHeader(name = FieldName.ENVIRONMENT_NAME, required = false) @@ -71,6 +75,7 @@ public class DatasourceControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), testResult, null)); } + @JsonView(Views.Public.class) @GetMapping("/{datasourceId}/structure") public Mono> getStructure(@PathVariable String datasourceId, @RequestParam(required = false, defaultValue = "false") Boolean ignoreCache, @@ -80,6 +85,7 @@ public class DatasourceControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), structure, null)); } + @JsonView(Views.Public.class) @GetMapping("/{datasourceId}/pages/{pageId}/code") public Mono getTokenRequestUrl(@PathVariable String datasourceId, @PathVariable String pageId, ServerWebExchange serverWebExchange) { log.debug("Going to retrieve token request URL for datasource with id: {} and page id: {}", datasourceId, pageId); @@ -91,6 +97,7 @@ public class DatasourceControllerCE extends BaseController getAccessToken(AuthorizationCodeCallbackDTO callbackDTO, ServerWebExchange serverWebExchange) { log.debug("Received callback for an OAuth2 authorization request"); @@ -102,18 +109,21 @@ public class DatasourceControllerCE extends BaseController>> getMockDataSets() { return mockDataService.getMockDataSet() .map(config -> new ResponseDTO<>(HttpStatus.OK.value(), config.getMockdbs(), null)); } + @JsonView(Views.Public.class) @PostMapping("/mocks") public Mono> createMockDataSet(@RequestBody MockDataSource mockDataSource) { return mockDataService.createMockDataSet(mockDataSource) .map(datasource -> new ResponseDTO<>(HttpStatus.OK.value(), datasource, null)); } + @JsonView(Views.Public.class) @PutMapping("/datasource-query/{datasourceId}") public Mono> runQueryOnDatasource(@PathVariable String datasourceId, @Valid @RequestBody List pluginSpecifiedTemplates) { @@ -122,6 +132,7 @@ public class DatasourceControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), metadata, null)); } + @JsonView(Views.Public.class) @PostMapping("/{datasourceId}/trigger") public Mono> trigger(@PathVariable String datasourceId, @RequestBody TriggerRequestDTO triggerRequestDTO, @@ -132,6 +143,7 @@ public class DatasourceControllerCE extends BaseController> update(@PathVariable String id, @RequestBody Datasource resource, diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/GitControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/GitControllerCE.java index a8a91366b2..e64efd0700 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/GitControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/GitControllerCE.java @@ -4,6 +4,7 @@ import com.appsmith.external.dtos.GitBranchDTO; import com.appsmith.external.dtos.GitLogDTO; import com.appsmith.external.dtos.GitStatusDTO; import com.appsmith.external.dtos.MergeStatusDTO; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.FieldName; import com.appsmith.server.constants.Url; import com.appsmith.server.domains.Application; @@ -20,6 +21,8 @@ import com.appsmith.server.dtos.GitPullDTO; import com.appsmith.server.dtos.ResponseDTO; import com.appsmith.server.helpers.GitDeployKeyGenerator; import com.appsmith.server.services.GitService; +import com.fasterxml.jackson.annotation.JsonView; + import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.BooleanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -56,6 +59,7 @@ public class GitControllerCE { * Note : The master branch here refers to the app that was created even before connecting to git * */ + @JsonView(Views.Public.class) @PostMapping("/profile/default") public Mono>> saveGitProfile(@RequestBody GitProfile gitProfile) { log.debug("Going to add default git profile for user"); @@ -63,6 +67,7 @@ public class GitControllerCE { .map(response -> new ResponseDTO<>(HttpStatus.OK.value(), response, null)); } + @JsonView(Views.Public.class) @PutMapping("/profile/app/{defaultApplicationId}") public Mono>> saveGitProfile(@PathVariable String defaultApplicationId, @RequestBody GitProfile gitProfile) { @@ -71,24 +76,28 @@ public class GitControllerCE { .map(response -> new ResponseDTO<>(HttpStatus.ACCEPTED.value(), response, null)); } + @JsonView(Views.Public.class) @GetMapping("/profile/default") public Mono> getDefaultGitConfigForUser() { return service.getDefaultGitProfileOrCreateIfEmpty() .map(gitConfigResponse -> new ResponseDTO<>(HttpStatus.OK.value(), gitConfigResponse, null)); } + @JsonView(Views.Public.class) @GetMapping("/profile/app/{defaultApplicationId}") public Mono> getGitConfigForUser(@PathVariable String defaultApplicationId) { return service.getGitProfileForUser(defaultApplicationId) .map(gitConfigResponse -> new ResponseDTO<>(HttpStatus.OK.value(), gitConfigResponse, null)); } + @JsonView(Views.Public.class) @GetMapping("/metadata/app/{defaultApplicationId}") public Mono> getGitMetadata(@PathVariable String defaultApplicationId) { return service.getGitApplicationMetadata(defaultApplicationId) .map(metadata -> new ResponseDTO<>(HttpStatus.OK.value(), metadata, null)); } + @JsonView(Views.Public.class) @PostMapping("/connect/app/{defaultApplicationId}") public Mono> connectApplicationToRemoteRepo(@PathVariable String defaultApplicationId, @RequestBody GitConnectDTO gitConnectDTO, @@ -97,6 +106,7 @@ public class GitControllerCE { .map(application -> new ResponseDTO<>(HttpStatus.OK.value(), application, null)); } + @JsonView(Views.Public.class) @PostMapping("/commit/app/{defaultApplicationId}") @ResponseStatus(HttpStatus.CREATED) public Mono> commit(@RequestBody GitCommitDTO commitDTO, @@ -108,6 +118,7 @@ public class GitControllerCE { .map(result -> new ResponseDTO<>(HttpStatus.CREATED.value(), result, null)); } + @JsonView(Views.Public.class) @GetMapping("/commit-history/app/{defaultApplicationId}") public Mono>> getCommitHistory(@PathVariable String defaultApplicationId, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -116,6 +127,7 @@ public class GitControllerCE { .map(logs -> new ResponseDTO<>(HttpStatus.OK.value(), logs, null)); } + @JsonView(Views.Public.class) @PostMapping("/push/app/{defaultApplicationId}") @ResponseStatus(HttpStatus.CREATED) public Mono> push(@PathVariable String defaultApplicationId, @@ -125,6 +137,7 @@ public class GitControllerCE { .map(result -> new ResponseDTO<>(HttpStatus.CREATED.value(), result, null)); } + @JsonView(Views.Public.class) @PostMapping("/create-branch/app/{defaultApplicationId}") @ResponseStatus(HttpStatus.CREATED) public Mono> createBranch(@PathVariable String defaultApplicationId, @@ -135,6 +148,7 @@ public class GitControllerCE { .map(result -> new ResponseDTO<>(HttpStatus.CREATED.value(), result, null)); } + @JsonView(Views.Public.class) @GetMapping("/checkout-branch/app/{defaultApplicationId}") public Mono> checkoutBranch(@PathVariable String defaultApplicationId, @RequestParam(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -143,6 +157,7 @@ public class GitControllerCE { .map(result -> new ResponseDTO<>(HttpStatus.OK.value(), result, null)); } + @JsonView(Views.Public.class) @PostMapping("/disconnect/app/{defaultApplicationId}") public Mono> disconnectFromRemote(@PathVariable String defaultApplicationId) { log.debug("Going to remove the remoteUrl for application {}", defaultApplicationId); @@ -150,6 +165,7 @@ public class GitControllerCE { .map(result -> new ResponseDTO<>(HttpStatus.OK.value(), result, null)); } + @JsonView(Views.Public.class) @GetMapping("/pull/app/{defaultApplicationId}") public Mono> pull(@PathVariable String defaultApplicationId, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -158,6 +174,7 @@ public class GitControllerCE { .map(result -> new ResponseDTO<>(HttpStatus.OK.value(), result, null)); } + @JsonView(Views.Public.class) @GetMapping("/branch/app/{defaultApplicationId}") public Mono>> branch(@PathVariable String defaultApplicationId, @RequestParam(required = false, defaultValue = "false") Boolean pruneBranches, @@ -167,6 +184,7 @@ public class GitControllerCE { .map(result -> new ResponseDTO<>(HttpStatus.OK.value(), result, null)); } + @JsonView(Views.Public.class) @GetMapping("/status/app/{defaultApplicationId}") public Mono> getStatus(@PathVariable String defaultApplicationId, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -175,6 +193,7 @@ public class GitControllerCE { .map(result -> new ResponseDTO<>(HttpStatus.OK.value(), result, null)); } + @JsonView(Views.Public.class) @PostMapping("/merge/app/{defaultApplicationId}") public Mono> merge(@PathVariable String defaultApplicationId, @RequestBody GitMergeDTO gitMergeDTO) { @@ -183,6 +202,7 @@ public class GitControllerCE { .map(result -> new ResponseDTO<>(HttpStatus.OK.value(), result, null)); } + @JsonView(Views.Public.class) @PostMapping("/merge/status/app/{defaultApplicationId}") public Mono> mergeStatus(@PathVariable String defaultApplicationId, @RequestBody GitMergeDTO gitMergeDTO) { @@ -191,6 +211,7 @@ public class GitControllerCE { .map(result -> new ResponseDTO<>(HttpStatus.OK.value(), result, null)); } + @JsonView(Views.Public.class) @PostMapping("/conflicted-branch/app/{defaultApplicationId}") public Mono> createConflictedBranch(@PathVariable String defaultApplicationId, @RequestHeader(name = FieldName.BRANCH_NAME) String branchName) { @@ -199,12 +220,14 @@ public class GitControllerCE { .map(result -> new ResponseDTO<>(HttpStatus.OK.value(), result, null)); } + @JsonView(Views.Public.class) @GetMapping("/import/keys") public Mono> generateKeyForGitImport(@RequestParam(required = false) String keyType) { return service.generateSSHKey(keyType) .map(result -> new ResponseDTO<>(HttpStatus.OK.value(), result, null)); } + @JsonView(Views.Public.class) @PostMapping("/import/{workspaceId}") public Mono> importApplicationFromGit(@PathVariable String workspaceId, @RequestBody GitConnectDTO gitConnectDTO) { @@ -212,12 +235,14 @@ public class GitControllerCE { .map(result -> new ResponseDTO<>(HttpStatus.CREATED.value(), result, null)); } + @JsonView(Views.Public.class) @GetMapping("/test-connection/app/{defaultApplicationId}") public Mono> testGitConnection(@PathVariable String defaultApplicationId) { return service.testConnection(defaultApplicationId) .map(result -> new ResponseDTO<>((HttpStatus.OK.value()), result, null)); } + @JsonView(Views.Public.class) @DeleteMapping("/branch/app/{defaultApplicationId}") public Mono> deleteBranch(@PathVariable String defaultApplicationId, @RequestParam String branchName) { log.debug("Going to delete branch {} for defaultApplicationId {}", branchName, defaultApplicationId); @@ -225,6 +250,7 @@ public class GitControllerCE { .map(application -> new ResponseDTO<>(HttpStatus.OK.value(), application, null)); } + @JsonView(Views.Public.class) @PutMapping("/discard/app/{defaultApplicationId}") public Mono> discardChanges(@PathVariable String defaultApplicationId, @RequestHeader(name = FieldName.BRANCH_NAME) String branchName) { @@ -233,6 +259,7 @@ public class GitControllerCE { .map(result -> new ResponseDTO<>((HttpStatus.OK.value()), result, null)); } + @JsonView(Views.Public.class) @GetMapping("/protocol/key-types") public Mono>> getSupportedKeys() { log.debug("Going to list the list of supported keys"); @@ -240,6 +267,7 @@ public class GitControllerCE { .map(gitDeployKeyDTOS -> new ResponseDTO<>(HttpStatus.OK.value(), gitDeployKeyDTOS, null)); } + @JsonView(Views.Public.class) @GetMapping("/doc-urls") public Mono>> getGitDocs() { return service.getGitDocUrls() diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/HealthCheckControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/HealthCheckControllerCE.java index 34a8ad8619..635ad05518 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/HealthCheckControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/HealthCheckControllerCE.java @@ -1,8 +1,11 @@ package com.appsmith.server.controllers.ce; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.Url; import com.appsmith.server.dtos.ResponseDTO; import com.appsmith.server.services.HealthCheckService; +import com.fasterxml.jackson.annotation.JsonView; + import lombok.AllArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.GetMapping; @@ -14,6 +17,7 @@ import reactor.core.publisher.Mono; public class HealthCheckControllerCE { private final HealthCheckService healthCheckService; + @JsonView(Views.Public.class) @GetMapping public Mono> getHealth() { return healthCheckService.getHealth().map(health -> new ResponseDTO<>(HttpStatus.OK.value(), health, null)); diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/IndexControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/IndexControllerCE.java index bf9aaba8a1..968fc0b6df 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/IndexControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/IndexControllerCE.java @@ -1,7 +1,10 @@ package com.appsmith.server.controllers.ce; +import com.appsmith.external.views.Views; import com.appsmith.server.domains.User; import com.appsmith.server.services.SessionUserService; +import com.fasterxml.jackson.annotation.JsonView; + import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.core.ReactiveRedisTemplate; @@ -21,6 +24,7 @@ public class IndexControllerCE { private final ReactiveRedisTemplate reactiveTemplate; private final ChannelTopic topic; + @JsonView(Views.Public.class) @GetMapping public Mono index(Mono principal) { Mono userMono = service.getCurrentUser(); @@ -33,6 +37,7 @@ public class IndexControllerCE { * This function is primarily for testing if we can publish to Redis successfully. If yes, the response should be * non-zero value number of subscribers who've successfully gotten the published message */ + @JsonView(Views.Public.class) @GetMapping("/redisPub") public Mono pubRedisMessage() { return reactiveTemplate.convertAndSend(topic.getTopic(), "This is a test message"); diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/InstanceAdminControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/InstanceAdminControllerCE.java index 6588beada4..462cc2555a 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/InstanceAdminControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/InstanceAdminControllerCE.java @@ -1,10 +1,13 @@ package com.appsmith.server.controllers.ce; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.Url; import com.appsmith.server.dtos.EnvChangesResponseDTO; import com.appsmith.server.dtos.ResponseDTO; import com.appsmith.server.dtos.TestEmailConfigRequestDTO; import com.appsmith.server.solutions.EnvManager; +import com.fasterxml.jackson.annotation.JsonView; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; @@ -27,6 +30,7 @@ public class InstanceAdminControllerCE { private final EnvManager envManager; + @JsonView(Views.Public.class) @GetMapping("/env") public Mono>> getAll() { log.debug("Getting all env configuration"); @@ -34,6 +38,7 @@ public class InstanceAdminControllerCE { .map(data -> new ResponseDTO<>(HttpStatus.OK.value(), data, null)); } + @JsonView(Views.Public.class) @GetMapping("/env/download") public Mono download(ServerWebExchange exchange) { log.debug("Getting all env configuration"); @@ -41,6 +46,7 @@ public class InstanceAdminControllerCE { } @Deprecated + @JsonView(Views.Public.class) @PutMapping(value = "/env", consumes = {MediaType.APPLICATION_JSON_VALUE}) public Mono> saveEnvChangesJSON( @Valid @RequestBody Map changes @@ -50,6 +56,7 @@ public class InstanceAdminControllerCE { .map(res -> new ResponseDTO<>(HttpStatus.OK.value(), res, null)); } + @JsonView(Views.Public.class) @PutMapping(value = "/env", consumes = {MediaType.MULTIPART_FORM_DATA_VALUE}) public Mono> saveEnvChangesMultipartFormData( ServerWebExchange exchange @@ -60,6 +67,7 @@ public class InstanceAdminControllerCE { .map(res -> new ResponseDTO<>(HttpStatus.OK.value(), res, null)); } + @JsonView(Views.Public.class) @PostMapping("/restart") public Mono> restart() { log.debug("Received restart request"); @@ -67,6 +75,7 @@ public class InstanceAdminControllerCE { .thenReturn(new ResponseDTO<>(HttpStatus.OK.value(), true, null)); } + @JsonView(Views.Public.class) @PostMapping("/send-test-email") public Mono> sendTestEmail(@RequestBody @Valid TestEmailConfigRequestDTO requestDTO) { log.debug("Sending test email"); diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ItemControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ItemControllerCE.java index 0bfb3394e8..20da510cd9 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ItemControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ItemControllerCE.java @@ -2,10 +2,13 @@ package com.appsmith.server.controllers.ce; import com.appsmith.server.constants.Url; import com.appsmith.external.models.ActionDTO; +import com.appsmith.external.views.Views; import com.appsmith.server.dtos.AddItemToPageDTO; import com.appsmith.server.dtos.ItemDTO; import com.appsmith.server.dtos.ResponseDTO; import com.appsmith.server.services.ItemService; +import com.fasterxml.jackson.annotation.JsonView; + import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.util.MultiValueMap; @@ -27,6 +30,7 @@ public class ItemControllerCE { this.service = service; } + @JsonView(Views.Public.class) @GetMapping("") public Mono>> getAll(@RequestParam MultiValueMap params) { log.debug("Going to get all items by parameters " + params); @@ -34,6 +38,7 @@ public class ItemControllerCE { .map(resources -> new ResponseDTO<>(HttpStatus.OK.value(), resources, null)); } + @JsonView(Views.Public.class) @PostMapping("/addToPage") public Mono> addItemToPage(@RequestBody AddItemToPageDTO addItemToPageDTO) { log.debug("Going to add item {} to page {} with new name {}", addItemToPageDTO.getMarketplaceElement().getItem().getName(), diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/LayoutControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/LayoutControllerCE.java index ea46c9152d..3d340a15ff 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/LayoutControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/LayoutControllerCE.java @@ -1,5 +1,6 @@ package com.appsmith.server.controllers.ce; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.FieldName; import com.appsmith.server.constants.Url; import com.appsmith.server.domains.Layout; @@ -10,6 +11,8 @@ import com.appsmith.server.dtos.ce.UpdateMultiplePageLayoutDTO; import com.appsmith.server.services.LayoutActionService; import com.appsmith.server.services.LayoutService; import com.appsmith.server.solutions.RefactoringSolution; +import com.fasterxml.jackson.annotation.JsonView; + import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -44,6 +47,7 @@ public class LayoutControllerCE { this.refactoringSolution = refactoringSolution; } + @JsonView(Views.Public.class) @PostMapping("/pages/{defaultPageId}") public Mono> createLayout(@PathVariable String defaultPageId, @Valid @RequestBody Layout layout, @@ -52,6 +56,7 @@ public class LayoutControllerCE { .map(created -> new ResponseDTO<>(HttpStatus.CREATED.value(), created, null)); } + @JsonView(Views.Public.class) @GetMapping("/{layoutId}/pages/{defaultPageId}") public Mono> getLayout(@PathVariable String defaultPageId, @PathVariable String layoutId, @@ -60,6 +65,7 @@ public class LayoutControllerCE { .map(created -> new ResponseDTO<>(HttpStatus.OK.value(), created, null)); } + @JsonView(Views.Public.class) @PutMapping("/application/{applicationId}") public Mono> updateMultipleLayouts(@PathVariable String applicationId, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName, @@ -69,6 +75,7 @@ public class LayoutControllerCE { .map(updatedCount -> new ResponseDTO<>(HttpStatus.OK.value(), updatedCount, null)); } + @JsonView(Views.Public.class) @PutMapping("/{layoutId}/pages/{pageId}") public Mono> updateLayout(@PathVariable String pageId, @RequestParam String applicationId, @@ -80,6 +87,7 @@ public class LayoutControllerCE { .map(created -> new ResponseDTO<>(HttpStatus.OK.value(), created, null)); } + @JsonView(Views.Public.class) @GetMapping("/{layoutId}/pages/{pageId}/view") public Mono> getLayoutView(@PathVariable String pageId, @PathVariable String layoutId, @@ -88,6 +96,7 @@ public class LayoutControllerCE { .map(created -> new ResponseDTO<>(HttpStatus.OK.value(), created, null)); } + @JsonView(Views.Public.class) @PutMapping("/refactor") public Mono> refactorWidgetName(@RequestBody RefactorNameDTO refactorNameDTO, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/MarketplaceControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/MarketplaceControllerCE.java index 612236cf84..d61560df1b 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/MarketplaceControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/MarketplaceControllerCE.java @@ -2,11 +2,13 @@ package com.appsmith.server.controllers.ce; import com.appsmith.external.models.ApiTemplate; import com.appsmith.external.models.Provider; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.Url; import com.appsmith.server.dtos.ProviderPaginatedDTO; import com.appsmith.server.dtos.ResponseDTO; import com.appsmith.server.dtos.SearchResponseDTO; import com.appsmith.server.services.MarketplaceService; +import com.fasterxml.jackson.annotation.JsonView; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; @@ -30,6 +32,7 @@ public class MarketplaceControllerCE { this.marketplaceService = marketplaceService; } + @JsonView(Views.Public.class) @GetMapping("/search") Mono> searchAPIOrProviders(@RequestParam String searchKey, @RequestParam(required = false) Integer limit) { @@ -41,6 +44,7 @@ public class MarketplaceControllerCE { }); } + @JsonView(Views.Public.class) @GetMapping("/templates") public Mono>> getAllTemplatesFromMarketplace(@RequestParam MultiValueMap params) { log.debug("Going to get all templates from Marketplace"); @@ -48,6 +52,7 @@ public class MarketplaceControllerCE { .map(resources -> new ResponseDTO<>(HttpStatus.OK.value(), resources, null)); } + @JsonView(Views.Public.class) @GetMapping("/providers") public Mono> getAllProvidersFromMarketplace(@RequestParam MultiValueMap params) { log.debug("Going to get all providers from Marketplace"); @@ -55,6 +60,7 @@ public class MarketplaceControllerCE { .map(resources -> new ResponseDTO<>(HttpStatus.OK.value(), resources, null)); } + @JsonView(Views.Public.class) @GetMapping("/providers/{id}") public Mono> getProviderByIdFromMarketplace(@PathVariable String id) { log.debug("Going to get provider from Marketplace with id {}", id); @@ -62,6 +68,7 @@ public class MarketplaceControllerCE { .map(resource -> new ResponseDTO<>(HttpStatus.OK.value(), resource, null)); } + @JsonView(Views.Public.class) @GetMapping("/categories") public Mono>> getAllCategoriesFromMarketplace() { log.debug("Going to get all categories from Marketplace"); diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/NotificationControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/NotificationControllerCE.java index 14efa34fc5..367fa1319d 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/NotificationControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/NotificationControllerCE.java @@ -1,5 +1,6 @@ package com.appsmith.server.controllers.ce; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.Url; import com.appsmith.server.domains.Notification; import com.appsmith.server.dtos.ResponseDTO; @@ -7,6 +8,8 @@ import com.appsmith.server.dtos.UpdateIsReadNotificationByIdDTO; import com.appsmith.server.dtos.UpdateIsReadNotificationDTO; import com.appsmith.server.exceptions.AppsmithException; import com.appsmith.server.services.NotificationService; +import com.fasterxml.jackson.annotation.JsonView; + import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.GetMapping; @@ -28,12 +31,14 @@ public class NotificationControllerCE extends BaseController> getUnreadCount() { return service.getUnreadCount() .map(response -> new ResponseDTO<>(HttpStatus.OK.value(), response, null)); } + @JsonView(Views.Public.class) @PatchMapping("isRead") public Mono> updateIsRead( @RequestBody @Valid UpdateIsReadNotificationByIdDTO body) { @@ -43,6 +48,7 @@ public class NotificationControllerCE extends BaseController> updateIsRead( @RequestBody @Valid UpdateIsReadNotificationDTO body) { diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/PageControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/PageControllerCE.java index c18e542aaf..53c6c87c4f 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/PageControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/PageControllerCE.java @@ -1,5 +1,6 @@ package com.appsmith.server.controllers.ce; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.FieldName; import com.appsmith.server.constants.Url; import com.appsmith.server.domains.ApplicationMode; @@ -13,6 +14,8 @@ import com.appsmith.server.exceptions.AppsmithException; import com.appsmith.server.services.ApplicationPageService; import com.appsmith.server.services.NewPageService; import com.appsmith.server.solutions.CreateDBTablePageSolution; +import com.fasterxml.jackson.annotation.JsonView; + import lombok.NonNull; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -51,6 +54,7 @@ public class PageControllerCE { this.createDBTablePageSolution = createDBTablePageSolution; } + @JsonView(Views.Public.class) @PostMapping @ResponseStatus(HttpStatus.CREATED) public Mono> createPage(@Valid @RequestBody PageDTO resource, @@ -62,6 +66,7 @@ public class PageControllerCE { .map(created -> new ResponseDTO<>(HttpStatus.CREATED.value(), created, null)); } + @JsonView(Views.Public.class) @PostMapping("/crud-page") @ResponseStatus(HttpStatus.CREATED) public Mono> createCRUDPage(@RequestBody @NonNull CRUDPageResourceDTO resource, @@ -71,6 +76,7 @@ public class PageControllerCE { .map(created -> new ResponseDTO<>(HttpStatus.CREATED.value(), created, null)); } + @JsonView(Views.Public.class) @PutMapping("/crud-page/{defaultPageId}") @ResponseStatus(HttpStatus.OK) public Mono> createCRUDPage(@PathVariable String defaultPageId, @@ -82,6 +88,7 @@ public class PageControllerCE { } @Deprecated + @JsonView(Views.Public.class) @GetMapping("/application/{applicationId}") public Mono> getPageNamesByApplicationId(@PathVariable String applicationId, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -89,6 +96,7 @@ public class PageControllerCE { .map(resources -> new ResponseDTO<>(HttpStatus.OK.value(), resources, null)); } + @JsonView(Views.Public.class) @GetMapping("/view/application/{applicationId}") public Mono> getPageNamesByApplicationIdInViewMode(@PathVariable String applicationId, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -96,6 +104,7 @@ public class PageControllerCE { .map(resources -> new ResponseDTO<>(HttpStatus.OK.value(), resources, null)); } + @JsonView(Views.Public.class) @GetMapping("/{defaultPageId}") public Mono> getPageById(@PathVariable String defaultPageId, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -104,6 +113,7 @@ public class PageControllerCE { } + @JsonView(Views.Public.class) @GetMapping("/{defaultPageId}/view") public Mono> getPageView(@PathVariable String defaultPageId, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -111,6 +121,7 @@ public class PageControllerCE { .map(page -> new ResponseDTO<>(HttpStatus.OK.value(), page, null)); } + @JsonView(Views.Public.class) @GetMapping("{pageName}/application/{applicationName}/view") public Mono> getPageViewByName(@PathVariable String applicationName, @PathVariable String pageName) { @@ -127,6 +138,7 @@ public class PageControllerCE { * @param branchName git branch to find the exact page which needs to be deleted * @return deleted page DTO */ + @JsonView(Views.Public.class) @DeleteMapping("/{defaultPageId}") public Mono> deletePage(@PathVariable String defaultPageId, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -135,6 +147,7 @@ public class PageControllerCE { .map(deletedResource -> new ResponseDTO<>(HttpStatus.OK.value(), deletedResource, null)); } + @JsonView(Views.Public.class) @PostMapping("/clone/{defaultPageId}") public Mono> clonePage(@PathVariable String defaultPageId, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -142,6 +155,7 @@ public class PageControllerCE { .map(page -> new ResponseDTO<>(HttpStatus.CREATED.value(), page, null)); } + @JsonView(Views.Public.class) @PutMapping("/{defaultPageId}") public Mono> updatePage(@PathVariable String defaultPageId, @RequestBody PageDTO resource, @@ -163,6 +177,7 @@ public class PageControllerCE { * @param branchName name of the current branch * @return List of ApplicationPagesDTO along with other meta data */ + @JsonView(Views.Public.class) @GetMapping public Mono> getAllPages(@RequestParam(required = false) String applicationId, @RequestParam(required = false) String pageId, diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/PluginControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/PluginControllerCE.java index 186b4fdf0f..bb6c84d1b4 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/PluginControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/PluginControllerCE.java @@ -1,11 +1,14 @@ package com.appsmith.server.controllers.ce; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.Url; import com.appsmith.server.domains.Workspace; import com.appsmith.server.domains.Plugin; import com.appsmith.server.dtos.PluginWorkspaceDTO; import com.appsmith.server.dtos.ResponseDTO; import com.appsmith.server.services.PluginService; +import com.fasterxml.jackson.annotation.JsonView; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.GetMapping; @@ -28,6 +31,7 @@ public class PluginControllerCE extends BaseController> install(@Valid @RequestBody PluginWorkspaceDTO plugin) { @@ -35,6 +39,7 @@ public class PluginControllerCE extends BaseController new ResponseDTO<>(HttpStatus.CREATED.value(), workspace, null)); } + @JsonView(Views.Public.class) @PostMapping("/uninstall") @ResponseStatus(HttpStatus.CREATED) public Mono> uninstall(@Valid @RequestBody PluginWorkspaceDTO plugin) { @@ -42,12 +47,14 @@ public class PluginControllerCE extends BaseController new ResponseDTO<>(HttpStatus.CREATED.value(), workspace, null)); } + @JsonView(Views.Public.class) @GetMapping("/{pluginId}/form") public Mono> getDatasourceForm(@PathVariable String pluginId) { return service.getFormConfig(pluginId) .map(form -> new ResponseDTO<>(HttpStatus.OK.value(), form, null)); } + @JsonView(Views.Public.class) @GetMapping("/default/icons") public Mono>> getDefaultPluginIcons() { return service.getDefaultPluginIcons() diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ProviderControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ProviderControllerCE.java index ac307254ee..10ea9364c0 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ProviderControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ProviderControllerCE.java @@ -1,9 +1,12 @@ package com.appsmith.server.controllers.ce; import com.appsmith.external.models.Provider; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.Url; import com.appsmith.server.dtos.ResponseDTO; import com.appsmith.server.services.ProviderService; +import com.fasterxml.jackson.annotation.JsonView; + import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.GetMapping; @@ -20,6 +23,7 @@ public class ProviderControllerCE extends BaseController>> getAllCategories() { return service.getAllCategories() diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/RestApiImportControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/RestApiImportControllerCE.java index 37613e1b55..115785164e 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/RestApiImportControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/RestApiImportControllerCE.java @@ -1,6 +1,7 @@ package com.appsmith.server.controllers.ce; import com.appsmith.external.models.TemplateCollection; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.FieldName; import com.appsmith.server.constants.Url; import com.appsmith.server.domains.RestApiImporterType; @@ -9,6 +10,8 @@ import com.appsmith.server.dtos.ResponseDTO; import com.appsmith.server.services.ApiImporter; import com.appsmith.server.services.CurlImporterService; import com.appsmith.server.services.PostmanImporterService; +import com.fasterxml.jackson.annotation.JsonView; + import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.DeleteMapping; @@ -38,6 +41,7 @@ public class RestApiImportControllerCE { this.postmanImporterService = postmanImporterService; } + @JsonView(Views.Public.class) @PostMapping @ResponseStatus(HttpStatus.CREATED) public Mono> create(@RequestBody(required = false) Object input, @@ -63,6 +67,7 @@ public class RestApiImportControllerCE { .map(created -> new ResponseDTO<>(HttpStatus.CREATED.value(), created, null)); } + @JsonView(Views.Public.class) @PostMapping("/postman") @ResponseStatus(HttpStatus.CREATED) public Mono> importPostmanCollection(@RequestBody Object input, @@ -71,12 +76,14 @@ public class RestApiImportControllerCE { .map(created -> new ResponseDTO<>(HttpStatus.CREATED.value(), created, null)); } + @JsonView(Views.Public.class) @GetMapping("/templateCollections") public Mono>> fetchImportedCollections() { return Mono.just(postmanImporterService.fetchPostmanCollections()) .map(resources -> new ResponseDTO<>(HttpStatus.OK.value(), resources, null)); } + @JsonView(Views.Public.class) @DeleteMapping("/templateCollections/{id}") public Mono> deletePostmanCollection(@PathVariable String id) { return Mono.just(postmanImporterService.deletePostmanCollection(id)) diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/SaasControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/SaasControllerCE.java index 81f51deaf6..be50de25f3 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/SaasControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/SaasControllerCE.java @@ -1,10 +1,13 @@ package com.appsmith.server.controllers.ce; import com.appsmith.external.models.Datasource; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.FieldName; import com.appsmith.server.constants.Url; import com.appsmith.server.dtos.ResponseDTO; import com.appsmith.server.solutions.AuthenticationService; +import com.fasterxml.jackson.annotation.JsonView; + import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -28,6 +31,7 @@ public class SaasControllerCE { this.authenticationService = authenticationService; } + @JsonView(Views.Public.class) @PostMapping("/{datasourceId}/pages/{pageId}/oauth") public Mono> getAppsmithToken(@PathVariable String datasourceId, @PathVariable String pageId, @@ -40,6 +44,7 @@ public class SaasControllerCE { .map(token -> new ResponseDTO<>(HttpStatus.OK.value(), token, null)); } + @JsonView(Views.Public.class) @PostMapping("/{datasourceId}/token") public Mono> getAccessToken(@PathVariable String datasourceId, @RequestParam String appsmithToken, ServerWebExchange serverWebExchange) { diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/TenantControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/TenantControllerCE.java index 5c68565b00..8d9b979615 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/TenantControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/TenantControllerCE.java @@ -1,10 +1,13 @@ package com.appsmith.server.controllers.ce; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.Url; import com.appsmith.server.domains.Tenant; import com.appsmith.server.domains.TenantConfiguration; import com.appsmith.server.dtos.ResponseDTO; import com.appsmith.server.services.TenantService; +import com.fasterxml.jackson.annotation.JsonView; + import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -30,6 +33,7 @@ public class TenantControllerCE { * * @return */ + @JsonView(Views.Public.class) @GetMapping("/current") public Mono> getTenantConfig() { return service.getTenantConfiguration() diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ThemeControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ThemeControllerCE.java index fb0b839c19..601b9f5020 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ThemeControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/ThemeControllerCE.java @@ -1,5 +1,6 @@ package com.appsmith.server.controllers.ce; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.FieldName; import com.appsmith.server.constants.Url; import com.appsmith.server.domains.ApplicationMode; @@ -8,6 +9,8 @@ import com.appsmith.server.dtos.ResponseDTO; import com.appsmith.server.exceptions.AppsmithError; import com.appsmith.server.exceptions.AppsmithException; import com.appsmith.server.services.ThemeService; +import com.fasterxml.jackson.annotation.JsonView; + import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.GetMapping; @@ -36,6 +39,7 @@ public class ThemeControllerCE extends BaseController>> getApplicationThemes(@PathVariable String applicationId, @RequestHeader(name = FieldName.BRANCH_NAME, required = false) String branchName) { @@ -43,6 +47,7 @@ public class ThemeControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), themes, null)); } + @JsonView(Views.Public.class) @GetMapping("applications/{applicationId}/current") public Mono> getCurrentTheme(@PathVariable String applicationId, @RequestParam(required = false, defaultValue = "EDIT") ApplicationMode mode, @@ -51,6 +56,7 @@ public class ThemeControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), theme, null)); } + @JsonView(Views.Public.class) @PutMapping("applications/{applicationId}") public Mono> updateTheme(@PathVariable String applicationId, @Valid @RequestBody Theme resource, @@ -59,6 +65,7 @@ public class ThemeControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), theme, null)); } + @JsonView(Views.Public.class) @PatchMapping("applications/{applicationId}") public Mono> publishCurrentTheme(@PathVariable String applicationId, @RequestBody Theme resource, @@ -67,6 +74,7 @@ public class ThemeControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), theme, null)); } + @JsonView(Views.Public.class) @PatchMapping("{themeId}") public Mono> updateName(@PathVariable String themeId, @Valid @RequestBody Theme resource) { return service.updateName(themeId, resource) diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/UsagePulseControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/UsagePulseControllerCE.java index 89421b3acd..238c7e90dc 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/UsagePulseControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/UsagePulseControllerCE.java @@ -1,9 +1,12 @@ package com.appsmith.server.controllers.ce; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.Url; import com.appsmith.server.dtos.ResponseDTO; import com.appsmith.server.dtos.UsagePulseDTO; import com.appsmith.server.services.UsagePulseService; +import com.fasterxml.jackson.annotation.JsonView; + import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; @@ -19,6 +22,7 @@ public class UsagePulseControllerCE { private final UsagePulseService service; + @JsonView(Views.Public.class) @PostMapping @ResponseStatus(HttpStatus.CREATED) public Mono> create(@RequestBody @Valid UsagePulseDTO usagePulseDTO) { diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/UserControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/UserControllerCE.java index 5abd13c6f6..676ace08fa 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/UserControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/UserControllerCE.java @@ -1,5 +1,6 @@ package com.appsmith.server.controllers.ce; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.Url; import com.appsmith.server.domains.User; import com.appsmith.server.domains.UserData; @@ -16,6 +17,8 @@ import com.appsmith.server.services.UserWorkspaceService; import com.appsmith.server.solutions.UserAndAccessManagementService; import com.appsmith.server.solutions.UserSignup; import jakarta.validation.Valid; +import com.fasterxml.jackson.annotation.JsonView; + import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -64,6 +67,7 @@ public class UserControllerCE extends BaseController this.userAndAccessManagementService = userAndAccessManagementService; } + @JsonView(Views.Public.class) @PostMapping(consumes = {MediaType.APPLICATION_JSON_VALUE}) @ResponseStatus(HttpStatus.CREATED) public Mono> create(@Valid @RequestBody User resource, @@ -73,12 +77,14 @@ public class UserControllerCE extends BaseController .map(created -> new ResponseDTO<>(HttpStatus.CREATED.value(), created, null)); } + @JsonView(Views.Public.class) @PostMapping(consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE}) @ResponseStatus(HttpStatus.CREATED) public Mono createFormEncoded(ServerWebExchange exchange) { return userSignup.signupAndLoginFromFormData(exchange); } + @JsonView(Views.Public.class) @PostMapping(value = "/super", consumes = {MediaType.APPLICATION_JSON_VALUE}) public Mono> createSuperUser( @Valid @RequestBody UserSignupRequestDTO resource, @@ -88,17 +94,20 @@ public class UserControllerCE extends BaseController .map(created -> new ResponseDTO<>(HttpStatus.CREATED.value(), created, null)); } + @JsonView(Views.Public.class) @PostMapping(value = "/super", consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE}) public Mono createSuperUserFromFormData(ServerWebExchange exchange) { return userSignup.signupAndLoginSuperFromFormData(exchange); } + @JsonView(Views.Public.class) @PutMapping() public Mono> update(@RequestBody UserUpdateDTO updates, ServerWebExchange exchange) { return service.updateCurrentUser(updates, exchange) .map(updatedUser -> new ResponseDTO<>(HttpStatus.OK.value(), updatedUser, null)); } + @JsonView(Views.Public.class) @PutMapping("/leaveWorkspace/{workspaceId}") public Mono> leaveWorkspace(@PathVariable String workspaceId) { return userWorkspaceService.leaveWorkspace(workspaceId) @@ -113,6 +122,7 @@ public class UserControllerCE extends BaseController * @param originHeader The Origin header in the request. This is a mandatory parameter. * @return */ + @JsonView(Views.Public.class) @PostMapping("/forgotPassword") public Mono> forgotPasswordRequest(@RequestBody ResetUserPasswordDTO userPasswordDTO, @RequestHeader("Origin") String originHeader) { @@ -125,18 +135,21 @@ public class UserControllerCE extends BaseController .thenReturn(new ResponseDTO<>(HttpStatus.OK.value(), true, null)); } + @JsonView(Views.Public.class) @GetMapping("/verifyPasswordResetToken") public Mono> verifyPasswordResetToken(@RequestParam String token) { return service.verifyPasswordResetToken(token) .map(result -> new ResponseDTO<>(HttpStatus.OK.value(), result, null)); } + @JsonView(Views.Public.class) @PutMapping("/resetPassword") public Mono> resetPasswordAfterForgotPassword(@RequestBody ResetUserPasswordDTO userPasswordDTO) { return service.resetPasswordAfterForgotPassword(userPasswordDTO.getToken(), userPasswordDTO) .map(result -> new ResponseDTO<>(HttpStatus.OK.value(), result, null)); } + @JsonView(Views.Public.class) @GetMapping("/me") public Mono> getUserProfile() { return sessionUserService.getCurrentUser() @@ -152,6 +165,7 @@ public class UserControllerCE extends BaseController * @param originHeader Origin header in the request * @return List of new users who have been created/existing users who have been added to the workspace. */ + @JsonView(Views.Public.class) @PostMapping("/invite") public Mono>> inviteUsers(@RequestBody InviteUsersDTO inviteUsersDTO, @RequestHeader("Origin") String originHeader) { @@ -159,6 +173,7 @@ public class UserControllerCE extends BaseController .map(users -> new ResponseDTO<>(HttpStatus.OK.value(), users, null)); } + @JsonView(Views.Public.class) @PutMapping("/setReleaseNotesViewed") public Mono> setReleaseNotesViewed() { return sessionUserService.getCurrentUser() @@ -166,6 +181,7 @@ public class UserControllerCE extends BaseController .thenReturn(new ResponseDTO<>(HttpStatus.OK.value(), null, null)); } + @JsonView(Views.Public.class) @PostMapping(value = "/photo", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public Mono> uploadProfilePhoto(@RequestPart("file") Mono fileMono) { return fileMono @@ -173,6 +189,7 @@ public class UserControllerCE extends BaseController .map(url -> new ResponseDTO<>(HttpStatus.OK.value(), url, null)); } + @JsonView(Views.Public.class) @DeleteMapping("/photo") public Mono> deleteProfilePhoto() { return userDataService @@ -180,6 +197,7 @@ public class UserControllerCE extends BaseController .map(ignored -> new ResponseDTO<>(HttpStatus.OK.value(), null, null)); } + @JsonView(Views.Public.class) @GetMapping("/photo") public Mono getProfilePhoto(ServerWebExchange exchange) { return userDataService.makeProfilePhotoResponse(exchange) @@ -188,6 +206,7 @@ public class UserControllerCE extends BaseController })); } + @JsonView(Views.Public.class) @GetMapping("/photo/{email}") public Mono getProfilePhoto(ServerWebExchange exchange, @PathVariable String email) { return userDataService.makeProfilePhotoResponse(exchange, email) @@ -196,6 +215,7 @@ public class UserControllerCE extends BaseController })); } + @JsonView(Views.Public.class) @GetMapping("/features") public Mono>> getFeatureFlags() { return userDataService.getFeatureFlagsForCurrentUser() diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/WorkspaceControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/WorkspaceControllerCE.java index 5d1e6d3587..ade4e926bb 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/WorkspaceControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/WorkspaceControllerCE.java @@ -1,5 +1,6 @@ package com.appsmith.server.controllers.ce; +import com.appsmith.external.views.Views; import com.appsmith.server.constants.Url; import com.appsmith.server.domains.Workspace; import com.appsmith.server.dtos.UpdatePermissionGroupDTO; @@ -7,6 +8,7 @@ import com.appsmith.server.dtos.ResponseDTO; import com.appsmith.server.dtos.WorkspaceMemberInfoDTO; import com.appsmith.server.dtos.PermissionGroupInfoDTO; import com.appsmith.server.services.WorkspaceService; +import com.fasterxml.jackson.annotation.JsonView; import com.appsmith.server.services.UserWorkspaceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -40,18 +42,21 @@ public class WorkspaceControllerCE extends BaseController>> getPermissionGroupsForWorkspace(@PathVariable String workspaceId) { return service.getPermissionGroupsForWorkspace(workspaceId) .map(groupInfoList -> new ResponseDTO<>(HttpStatus.OK.value(), groupInfoList, null)); } + @JsonView(Views.Public.class) @GetMapping("/{workspaceId}/members") public Mono>> getUserMembersOfWorkspace(@PathVariable String workspaceId) { return userWorkspaceService.getWorkspaceMembers(workspaceId) .map(users -> new ResponseDTO<>(HttpStatus.OK.value(), users, null)); } + @JsonView(Views.Public.class) @PutMapping("/{workspaceId}/permissionGroup") public Mono> updatePermissionGroupForMember(@RequestBody UpdatePermissionGroupDTO updatePermissionGroupDTO, @PathVariable String workspaceId, @@ -60,6 +65,7 @@ public class WorkspaceControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), user, null)); } + @JsonView(Views.Public.class) @PostMapping("/{workspaceId}/logo") public Mono> uploadLogo(@PathVariable String workspaceId, @RequestPart("file") Mono fileMono) { @@ -68,6 +74,7 @@ public class WorkspaceControllerCE extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), url, null)); } + @JsonView(Views.Public.class) @DeleteMapping("/{workspaceId}/logo") public Mono> deleteLogo(@PathVariable String workspaceId) { return service.deleteLogo(workspaceId)