From bfd0c5d1781e17134e8d9fd0501a8598b4760e27 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Tue, 20 May 2025 05:34:45 -0400 Subject: [PATCH 1/2] add withDeleted param to get endpoints --- .../organization/service/OrganizationService.java | 2 ++ .../service/OrganizationServiceImpl.java | 9 +++++++++ .../api/application/ApplicationApiService.java | 6 ++++-- .../api/application/ApplicationApiServiceImpl.java | 10 ++++++---- .../api/application/ApplicationController.java | 12 ++++++------ .../api/application/ApplicationEndpoints.java | 4 ++-- .../api/usermanagement/OrganizationController.java | 4 ++-- .../api/usermanagement/OrganizationEndpoints.java | 2 +- 8 files changed, 32 insertions(+), 17 deletions(-) diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationService.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationService.java index 0a07ea5022..6b375d4d2d 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationService.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationService.java @@ -27,6 +27,8 @@ public interface OrganizationService { Mono getById(String id); + Mono getByIdWithDeleted(String id); + @NonEmptyMono Flux getByIds(Collection ids); @NonEmptyMono diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationServiceImpl.java index 7af165a6b3..781ffe257d 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationServiceImpl.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationServiceImpl.java @@ -174,6 +174,15 @@ public Mono getById(String id) { .switchIfEmpty(deferredError(UNABLE_TO_FIND_VALID_ORG, "INVALID_ORG_ID")); } + @Override + public Mono getByIdWithDeleted(String id) { + if(FieldName.isGID(id)) + return repository.findByGid(id).next() + .switchIfEmpty(deferredError(UNABLE_TO_FIND_VALID_ORG, "INVALID_ORG_ID")); + return repository.findBySlug(id).next().switchIfEmpty(repository.findById(id)) + .switchIfEmpty(deferredError(UNABLE_TO_FIND_VALID_ORG, "INVALID_ORG_ID")); + } + @Override public Mono getOrgCommonSettings(String orgId) { if(FieldName.isGID(orgId)) diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java index 23b1bbd3a0..c267e3ca9a 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java @@ -10,6 +10,8 @@ import org.lowcoder.domain.permission.model.ResourceAction; import org.lowcoder.domain.permission.model.ResourcePermission; import org.lowcoder.domain.permission.model.ResourceRole; +import org.springframework.web.bind.annotation.PathVariable; + import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -26,9 +28,9 @@ public interface ApplicationApiService { Mono restore(String applicationId); - Mono getEditingApplication(String applicationId); + Mono getEditingApplication(String applicationId, Boolean withDeleted); - Mono getPublishedApplication(String applicationId, ApplicationRequestType requestType); + Mono getPublishedApplication(String applicationId, ApplicationRequestType requestType, Boolean withDeleted); Mono updateUserApplicationLastViewTime(String applicationId); diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java index c520e35437..1345d2d2b7 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java @@ -49,6 +49,8 @@ import org.lowcoder.sdk.util.ExceptionUtils; import org.springframework.http.HttpHeaders; import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.PathVariable; + import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import reactor.core.scheduler.Schedulers; @@ -250,7 +252,7 @@ private Mono updateApplicationStatus(String applicationId, ApplicationS } @Override - public Mono getEditingApplication(String applicationId) { + public Mono getEditingApplication(String applicationId, Boolean withDeleted) { return applicationService.findById(applicationId).filter(application -> application.isPublicToAll() && application.isPublicToMarketplace()) .map(application -> { ResourcePermission permission = ResourcePermission.builder().resourceRole(ResourceRole.VIEWER).build(); @@ -258,7 +260,7 @@ public Mono getEditingApplication(String applicationId) { }) .switchIfEmpty(checkPermissionWithReadableErrorMsg(applicationId, EDIT_APPLICATIONS)) .zipWhen(permission -> applicationService.findById(applicationId) - .delayUntil(application -> checkApplicationStatus(application, NORMAL))) + .delayUntil(application -> Boolean.TRUE.equals(withDeleted)? Mono.empty() : checkApplicationStatus(application, NORMAL))) .zipWhen(tuple -> applicationService.getAllDependentModulesFromApplication(tuple.getT2(), false), TupleUtils::merge) .zipWhen(tuple -> organizationService.getOrgCommonSettings(tuple.getT2().getOrganizationId()), TupleUtils::merge) .flatMap(tuple -> { @@ -284,10 +286,10 @@ public Mono getEditingApplication(String applicationId) { } @Override - public Mono getPublishedApplication(String applicationId, ApplicationRequestType requestType) { + public Mono getPublishedApplication(String applicationId, ApplicationRequestType requestType, Boolean withDeleted) { return checkApplicationPermissionWithReadableErrorMsg(applicationId, READ_APPLICATIONS, requestType) .zipWhen(permission -> applicationService.findById(applicationId) - .delayUntil(application -> checkApplicationStatus(application, NORMAL)) + .delayUntil(application -> Boolean.TRUE.equals(withDeleted)? Mono.empty() : checkApplicationStatus(application, NORMAL)) .delayUntil(application -> checkApplicationViewRequest(application, requestType))) .zipWhen(tuple -> applicationService.getAllDependentModulesFromApplication(tuple.getT2(), true), TupleUtils::merge) .zipWhen(tuple -> organizationService.getOrgCommonSettings(tuple.getT2().getOrganizationId()), TupleUtils::merge) diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java index 9962783cfb..4f1b8895d3 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java @@ -84,17 +84,17 @@ public Mono> delete(@PathVariable String applicati } @Override - public Mono> getEditingApplication(@PathVariable String applicationId) { + public Mono> getEditingApplication(@PathVariable String applicationId, @PathVariable Boolean withDeleted) { return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> - applicationApiService.getEditingApplication(appId) + applicationApiService.getEditingApplication(appId, withDeleted) .delayUntil(__ -> applicationApiService.updateUserApplicationLastViewTime(appId)) .map(ResponseView::success)); } @Override - public Mono> getPublishedApplication(@PathVariable String applicationId) { + public Mono> getPublishedApplication(@PathVariable String applicationId, @PathVariable Boolean withDeleted) { return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> - applicationApiService.getPublishedApplication(appId, ApplicationRequestType.PUBLIC_TO_ALL) + applicationApiService.getPublishedApplication(appId, ApplicationRequestType.PUBLIC_TO_ALL, withDeleted) .delayUntil(applicationView -> applicationApiService.updateUserApplicationLastViewTime(appId)) .delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, APPLICATION_VIEW)) .map(ResponseView::success)); @@ -103,7 +103,7 @@ public Mono> getPublishedApplication(@PathVariable @Override public Mono> getPublishedMarketPlaceApplication(@PathVariable String applicationId) { return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> - applicationApiService.getPublishedApplication(appId, ApplicationRequestType.PUBLIC_TO_MARKETPLACE) + applicationApiService.getPublishedApplication(appId, ApplicationRequestType.PUBLIC_TO_MARKETPLACE, false) .delayUntil(applicationView -> applicationApiService.updateUserApplicationLastViewTime(appId)) .delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, APPLICATION_VIEW)) .map(ResponseView::success)); @@ -112,7 +112,7 @@ public Mono> getPublishedMarketPlaceApplication(@P @Override public Mono> getAgencyProfileApplication(@PathVariable String applicationId) { return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> - applicationApiService.getPublishedApplication(appId, ApplicationRequestType.AGENCY_PROFILE) + applicationApiService.getPublishedApplication(appId, ApplicationRequestType.AGENCY_PROFILE, false) .delayUntil(applicationView -> applicationApiService.updateUserApplicationLastViewTime(appId)) .delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, APPLICATION_VIEW)) .map(ResponseView::success)); diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java index f49912e1c2..bec97a60f7 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java @@ -89,7 +89,7 @@ public interface ApplicationEndpoints description = "Retrieve the DSL data of a Lowcoder Application in edit-mode by its ID." ) @GetMapping("/{applicationId}") - public Mono> getEditingApplication(@PathVariable String applicationId); + public Mono> getEditingApplication(@PathVariable String applicationId, @PathVariable Boolean withDeleted); @Operation( tags = TAG_APPLICATION_MANAGEMENT, @@ -98,7 +98,7 @@ public interface ApplicationEndpoints description = "Retrieve the DSL data of a Lowcoder Application in view-mode by its ID." ) @GetMapping("/{applicationId}/view") - public Mono> getPublishedApplication(@PathVariable String applicationId); + public Mono> getPublishedApplication(@PathVariable String applicationId, @PathVariable Boolean withDeleted); @Operation( tags = TAG_APPLICATION_MANAGEMENT, diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java index bdf459d556..e5e0dc4872 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java @@ -194,9 +194,9 @@ public Mono> updateSlug(@PathVariable String orgId, @ } @Override - public Mono> getOrganization(@PathVariable String orgId) { + public Mono> getOrganization(@PathVariable String orgId, @PathVariable Boolean includeDeleted) { return gidService.convertOrganizationIdToObjectId(orgId) - .flatMap(id -> organizationService.getById(id)) + .flatMap(id -> Boolean.TRUE.equals(includeDeleted) ? organizationService.getByIdWithDeleted(id) : organizationService.getById(id)) .switchIfEmpty(Mono.error(new BizException(BizError.ORGANIZATION_NOT_FOUND, "ORGANIZATION_NOT_FOUND"))) .map(ResponseView::success); } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationEndpoints.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationEndpoints.java index 68bfc97841..37ba6652c0 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationEndpoints.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationEndpoints.java @@ -191,7 +191,7 @@ public Mono> removeUserFromOrg(@PathVariable String orgId, description = "Retrieve details of a specific Organization within Lowcoder using its unique ID." ) @GetMapping("/{orgId}") - public Mono> getOrganization(@PathVariable String orgId); + public Mono> getOrganization(@PathVariable String orgId, @PathVariable Boolean includeDeleted); public record UpdateOrgCommonSettingsRequest(String key, Object value) { From 75d1d593a273a35355e583af1ac0f7cd7fabf2e7 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Tue, 20 May 2025 12:02:08 -0400 Subject: [PATCH 2/2] modify update endpoint to restore deleted objects --- .../domain/datasource/model/Datasource.java | 1 + .../api/application/ApplicationController.java | 7 ++++--- .../api/application/ApplicationEndpoints.java | 7 ++++--- .../api/datasource/UpsertDatasourceRequest.java | 3 +++ .../UpsertDatasourceRequestMapper.java | 1 + .../api/usermanagement/OrgApiServiceImpl.java | 1 + .../usermanagement/OrganizationController.java | 4 ++-- .../usermanagement/OrganizationEndpoints.java | 2 +- .../usermanagement/view/UpdateOrgRequest.java | 12 ++++++++++++ .../ApplicationApiServiceIntegrationTest.java | 2 +- .../application/ApplicationApiServiceTest.java | 16 ++++++++-------- 11 files changed, 38 insertions(+), 18 deletions(-) diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/datasource/model/Datasource.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/datasource/model/Datasource.java index 7bb468f27e..01bbface13 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/datasource/model/Datasource.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/datasource/model/Datasource.java @@ -87,6 +87,7 @@ public class Datasource extends HasIdAndAuditing { public Datasource mergeWith(Datasource updatedDatasource) { setName(updatedDatasource.getName()); + setDatasourceStatus(updatedDatasource.getDatasourceStatus()); Optional.of(getDetailConfig()) .ifPresentOrElse(currentDetailConfig -> { if (updatedDatasource.getDetailConfig() instanceof JsDatasourceConnectionConfig jsDatasourceConnectionConfig) { diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java index 4f1b8895d3..2ae5ea03ef 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java @@ -84,7 +84,7 @@ public Mono> delete(@PathVariable String applicati } @Override - public Mono> getEditingApplication(@PathVariable String applicationId, @PathVariable Boolean withDeleted) { + public Mono> getEditingApplication(@PathVariable String applicationId, @RequestParam(required = false) Boolean withDeleted) { return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> applicationApiService.getEditingApplication(appId, withDeleted) .delayUntil(__ -> applicationApiService.updateUserApplicationLastViewTime(appId)) @@ -92,7 +92,7 @@ public Mono> getEditingApplication(@PathVariable S } @Override - public Mono> getPublishedApplication(@PathVariable String applicationId, @PathVariable Boolean withDeleted) { + public Mono> getPublishedApplication(@PathVariable String applicationId, @RequestParam(required = false) Boolean withDeleted) { return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> applicationApiService.getPublishedApplication(appId, ApplicationRequestType.PUBLIC_TO_ALL, withDeleted) .delayUntil(applicationView -> applicationApiService.updateUserApplicationLastViewTime(appId)) @@ -120,7 +120,8 @@ public Mono> getAgencyProfileApplication(@PathVari @Override public Mono> update(@PathVariable String applicationId, - @RequestBody Application newApplication) { + @RequestBody Application newApplication, + @RequestParam(required = false) Boolean updateStatus) { return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> applicationApiService.update(appId, newApplication) .delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, APPLICATION_UPDATE)) diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java index bec97a60f7..bf3c54ab1f 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java @@ -89,7 +89,7 @@ public interface ApplicationEndpoints description = "Retrieve the DSL data of a Lowcoder Application in edit-mode by its ID." ) @GetMapping("/{applicationId}") - public Mono> getEditingApplication(@PathVariable String applicationId, @PathVariable Boolean withDeleted); + public Mono> getEditingApplication(@PathVariable String applicationId, @RequestParam(required = false) Boolean withDeleted); @Operation( tags = TAG_APPLICATION_MANAGEMENT, @@ -98,7 +98,7 @@ public interface ApplicationEndpoints description = "Retrieve the DSL data of a Lowcoder Application in view-mode by its ID." ) @GetMapping("/{applicationId}/view") - public Mono> getPublishedApplication(@PathVariable String applicationId, @PathVariable Boolean withDeleted); + public Mono> getPublishedApplication(@PathVariable String applicationId, @RequestParam(required = false) Boolean withDeleted); @Operation( tags = TAG_APPLICATION_MANAGEMENT, @@ -126,7 +126,8 @@ public interface ApplicationEndpoints ) @PutMapping("/{applicationId}") public Mono> update(@PathVariable String applicationId, - @RequestBody Application newApplication); + @RequestBody Application newApplication, + @RequestParam(required = false) Boolean updateStatus); @Operation( tags = TAG_APPLICATION_MANAGEMENT, diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/datasource/UpsertDatasourceRequest.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/datasource/UpsertDatasourceRequest.java index 6f099bc10b..24fb0f5a08 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/datasource/UpsertDatasourceRequest.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/datasource/UpsertDatasourceRequest.java @@ -2,6 +2,8 @@ import java.util.Map; +import org.lowcoder.domain.datasource.model.DatasourceStatus; + import lombok.Getter; import lombok.Setter; @@ -14,6 +16,7 @@ public class UpsertDatasourceRequest { private String name; private String type; private String organizationId; + private DatasourceStatus status; private Map datasourceConfig; } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/datasource/UpsertDatasourceRequestMapper.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/datasource/UpsertDatasourceRequestMapper.java index 48a6b3adef..a6a2af94b5 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/datasource/UpsertDatasourceRequestMapper.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/datasource/UpsertDatasourceRequestMapper.java @@ -38,6 +38,7 @@ public Datasource resolve(UpsertDatasourceRequest dto) { datasource.setName(dto.getName()); datasource.setType(dto.getType()); datasource.setOrganizationId(dto.getOrganizationId()); + datasource.setDatasourceStatus(dto.getStatus()); if (datasourceMetaInfoService.isJsDatasourcePlugin(datasource.getType())) { datasource.setDetailConfig(JsonUtils.fromJson(JsonUtils.toJson(dto.getDatasourceConfig()), JsDatasourceConnectionConfig.class)); } else { diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrgApiServiceImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrgApiServiceImpl.java index 85e7c89f19..5853bfcf25 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrgApiServiceImpl.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrgApiServiceImpl.java @@ -291,6 +291,7 @@ public Mono update(String orgId, UpdateOrgRequest updateOrgRequest) { updateOrg.setContactEmail(updateOrgRequest.getContactEmail()); updateOrg.setContactPhoneNumber(updateOrgRequest.getContactPhoneNumber()); updateOrg.setContactName(updateOrgRequest.getContactName()); + updateOrg.setState(updateOrgRequest.getState()); return organizationService.update(orgId, updateOrg); }); } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java index e5e0dc4872..55221cd71b 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java @@ -194,9 +194,9 @@ public Mono> updateSlug(@PathVariable String orgId, @ } @Override - public Mono> getOrganization(@PathVariable String orgId, @PathVariable Boolean includeDeleted) { + public Mono> getOrganization(@PathVariable String orgId, @RequestParam(required = false) Boolean withDeleted) { return gidService.convertOrganizationIdToObjectId(orgId) - .flatMap(id -> Boolean.TRUE.equals(includeDeleted) ? organizationService.getByIdWithDeleted(id) : organizationService.getById(id)) + .flatMap(id -> Boolean.TRUE.equals(withDeleted) ? organizationService.getByIdWithDeleted(id) : organizationService.getById(id)) .switchIfEmpty(Mono.error(new BizException(BizError.ORGANIZATION_NOT_FOUND, "ORGANIZATION_NOT_FOUND"))) .map(ResponseView::success); } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationEndpoints.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationEndpoints.java index 37ba6652c0..ed8bd78b43 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationEndpoints.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationEndpoints.java @@ -191,7 +191,7 @@ public Mono> removeUserFromOrg(@PathVariable String orgId, description = "Retrieve details of a specific Organization within Lowcoder using its unique ID." ) @GetMapping("/{orgId}") - public Mono> getOrganization(@PathVariable String orgId, @PathVariable Boolean includeDeleted); + public Mono> getOrganization(@PathVariable String orgId, @RequestParam(required = false) Boolean withDeleted); public record UpdateOrgCommonSettingsRequest(String key, Object value) { diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/view/UpdateOrgRequest.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/view/UpdateOrgRequest.java index 156c64408c..15b6f867eb 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/view/UpdateOrgRequest.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/view/UpdateOrgRequest.java @@ -1,5 +1,7 @@ package org.lowcoder.api.usermanagement.view; +import org.lowcoder.domain.organization.model.OrganizationState; + public class UpdateOrgRequest { private String orgName; @@ -10,6 +12,16 @@ public class UpdateOrgRequest { private String contactPhoneNumber; + private OrganizationState state; + + public OrganizationState getState() { + return state; + } + + public void setState(OrganizationState state) { + this.state = state; + } + public String getOrgName() { return orgName; } diff --git a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceIntegrationTest.java b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceIntegrationTest.java index bc36d9be99..e35bc8258e 100644 --- a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceIntegrationTest.java +++ b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceIntegrationTest.java @@ -131,7 +131,7 @@ public void testUpdateApplicationFailedDueToLackOfDatasourcePermissions() { public void testUpdateEditingStateSuccess() { Mono applicationViewMono = applicationApiService.create(new CreateApplicationRequest("org01", null, "app1", ApplicationType.APPLICATION.getValue(), Map.of("comp", "list"), null, null, null)); Mono updateEditStateMono = applicationViewMono.delayUntil(app -> applicationApiService.updateEditState(app.getApplicationInfoView().getApplicationId(), new ApplicationEndpoints.UpdateEditStateRequest(true))); - Mono app = updateEditStateMono.flatMap(applicationView -> applicationApiService.getEditingApplication(applicationView.getApplicationInfoView().getApplicationId())); + Mono app = updateEditStateMono.flatMap(applicationView -> applicationApiService.getEditingApplication(applicationView.getApplicationInfoView().getApplicationId(), false)); StepVerifier.create(app) .assertNext(application -> { Assertions.assertEquals("user01", application.getApplicationInfoView().getEditingUserId()); diff --git a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java index 6996e76549..1b7ad7a553 100644 --- a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java +++ b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java @@ -144,12 +144,12 @@ public void testPublishApplication() { .cache(); // edit dsl before publish - StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getEditingApplication(id))) + StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getEditingApplication(id, false))) .assertNext(applicationView -> Assertions.assertEquals(Map.of("comp", "list"), applicationView.getApplicationDSL())) .verifyComplete(); // published dsl before publish - StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getPublishedApplication(id, ApplicationRequestType.PUBLIC_TO_ALL))) + StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getPublishedApplication(id, ApplicationRequestType.PUBLIC_TO_ALL, false))) .assertNext(applicationView -> Assertions.assertEquals(Map.of("comp", "list"), applicationView.getApplicationDSL())) .verifyComplete(); @@ -158,12 +158,12 @@ public void testPublishApplication() { .delayUntil(id -> applicationApiService.publish(id, new ApplicationPublishRequest("Test Publish", "1.0.0"))).cache(); // edit dsl after publish - StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getEditingApplication(id))) + StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getEditingApplication(id, false))) .assertNext(applicationView -> Assertions.assertEquals(Map.of("comp", "list"), applicationView.getApplicationDSL())) .verifyComplete(); // published dsl after publish - StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getPublishedApplication(id, ApplicationRequestType.PUBLIC_TO_ALL))) + StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getPublishedApplication(id, ApplicationRequestType.PUBLIC_TO_ALL, false))) .assertNext(applicationView -> Assertions.assertEquals(Map.of("comp", "list"), applicationView.getApplicationDSL())) .verifyComplete(); @@ -172,12 +172,12 @@ public void testPublishApplication() { .delayUntil(id -> applicationApiService.update(id, Application.builder().editingApplicationDSL(Map.of("comp", "table")).build())).cache(); // edit dsl after publish - StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getEditingApplication(id))) + StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getEditingApplication(id, false))) .assertNext(applicationView -> Assertions.assertEquals(Map.of("comp", "table"), applicationView.getApplicationDSL())) .verifyComplete(); // published dsl after publish - StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getPublishedApplication(id, ApplicationRequestType.PUBLIC_TO_ALL))) + StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getPublishedApplication(id, ApplicationRequestType.PUBLIC_TO_ALL, false))) .assertNext(applicationView -> Assertions.assertEquals(Map.of("comp", "list"), applicationView.getApplicationDSL())) .verifyComplete(); @@ -186,12 +186,12 @@ public void testPublishApplication() { .delayUntil(id -> applicationApiService.publish(id, new ApplicationPublishRequest("Test Publish 2", "2.0.0"))).cache(); // edit dsl after publish - StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getEditingApplication(id))) + StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getEditingApplication(id, false))) .assertNext(applicationView -> Assertions.assertEquals(Map.of("comp", "table"), applicationView.getApplicationDSL())) .verifyComplete(); // published dsl after publish - StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getPublishedApplication(id, ApplicationRequestType.PUBLIC_TO_ALL))) + StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getPublishedApplication(id, ApplicationRequestType.PUBLIC_TO_ALL, false))) .assertNext(applicationView -> Assertions.assertEquals(Map.of("comp", "table"), applicationView.getApplicationDSL())) .verifyComplete();