Skip to content

Commit 28cb34f

Browse files
dragonpooludomikula
authored andcommitted
add withDeleted param to get endpoints
1 parent 54c82ad commit 28cb34f

File tree

8 files changed

+32
-17
lines changed

8 files changed

+32
-17
lines changed

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ public interface OrganizationService {
2727

2828
Mono<Organization> getById(String id);
2929

30+
Mono<Organization> getByIdWithDeleted(String id);
31+
3032
@NonEmptyMono
3133
Flux<Organization> getByIds(Collection<String> ids);
3234
@NonEmptyMono

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationServiceImpl.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,15 @@ public Mono<Organization> getById(String id) {
174174
.switchIfEmpty(deferredError(UNABLE_TO_FIND_VALID_ORG, "INVALID_ORG_ID"));
175175
}
176176

177+
@Override
178+
public Mono<Organization> getByIdWithDeleted(String id) {
179+
if(FieldName.isGID(id))
180+
return repository.findByGid(id).next()
181+
.switchIfEmpty(deferredError(UNABLE_TO_FIND_VALID_ORG, "INVALID_ORG_ID"));
182+
return repository.findBySlug(id).next().switchIfEmpty(repository.findById(id))
183+
.switchIfEmpty(deferredError(UNABLE_TO_FIND_VALID_ORG, "INVALID_ORG_ID"));
184+
}
185+
177186
@Override
178187
public Mono<OrganizationCommonSettings> getOrgCommonSettings(String orgId) {
179188
if(FieldName.isGID(orgId))

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import org.lowcoder.domain.permission.model.ResourceAction;
1111
import org.lowcoder.domain.permission.model.ResourcePermission;
1212
import org.lowcoder.domain.permission.model.ResourceRole;
13+
import org.springframework.web.bind.annotation.PathVariable;
14+
1315
import reactor.core.publisher.Flux;
1416
import reactor.core.publisher.Mono;
1517

@@ -26,9 +28,9 @@ public interface ApplicationApiService {
2628

2729
Mono<Boolean> restore(String applicationId);
2830

29-
Mono<ApplicationView> getEditingApplication(String applicationId);
31+
Mono<ApplicationView> getEditingApplication(String applicationId, Boolean withDeleted);
3032

31-
Mono<ApplicationView> getPublishedApplication(String applicationId, ApplicationRequestType requestType);
33+
Mono<ApplicationView> getPublishedApplication(String applicationId, ApplicationRequestType requestType, Boolean withDeleted);
3234

3335
Mono<Void> updateUserApplicationLastViewTime(String applicationId);
3436

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@
4949
import org.lowcoder.sdk.util.ExceptionUtils;
5050
import org.springframework.http.HttpHeaders;
5151
import org.springframework.stereotype.Service;
52+
import org.springframework.web.bind.annotation.PathVariable;
53+
5254
import reactor.core.publisher.Flux;
5355
import reactor.core.publisher.Mono;
5456
import reactor.core.scheduler.Schedulers;
@@ -250,15 +252,15 @@ private Mono<Boolean> updateApplicationStatus(String applicationId, ApplicationS
250252
}
251253

252254
@Override
253-
public Mono<ApplicationView> getEditingApplication(String applicationId) {
255+
public Mono<ApplicationView> getEditingApplication(String applicationId, Boolean withDeleted) {
254256
return applicationService.findById(applicationId).filter(application -> application.isPublicToAll() && application.isPublicToMarketplace())
255257
.map(application -> {
256258
ResourcePermission permission = ResourcePermission.builder().resourceRole(ResourceRole.VIEWER).build();
257259
return permission;
258260
})
259261
.switchIfEmpty(checkPermissionWithReadableErrorMsg(applicationId, EDIT_APPLICATIONS))
260262
.zipWhen(permission -> applicationService.findById(applicationId)
261-
.delayUntil(application -> checkApplicationStatus(application, NORMAL)))
263+
.delayUntil(application -> Boolean.TRUE.equals(withDeleted)? Mono.empty() : checkApplicationStatus(application, NORMAL)))
262264
.zipWhen(tuple -> applicationService.getAllDependentModulesFromApplication(tuple.getT2(), false), TupleUtils::merge)
263265
.zipWhen(tuple -> organizationService.getOrgCommonSettings(tuple.getT2().getOrganizationId()), TupleUtils::merge)
264266
.flatMap(tuple -> {
@@ -284,10 +286,10 @@ public Mono<ApplicationView> getEditingApplication(String applicationId) {
284286
}
285287

286288
@Override
287-
public Mono<ApplicationView> getPublishedApplication(String applicationId, ApplicationRequestType requestType) {
289+
public Mono<ApplicationView> getPublishedApplication(String applicationId, ApplicationRequestType requestType, Boolean withDeleted) {
288290
return checkApplicationPermissionWithReadableErrorMsg(applicationId, READ_APPLICATIONS, requestType)
289291
.zipWhen(permission -> applicationService.findById(applicationId)
290-
.delayUntil(application -> checkApplicationStatus(application, NORMAL))
292+
.delayUntil(application -> Boolean.TRUE.equals(withDeleted)? Mono.empty() : checkApplicationStatus(application, NORMAL))
291293
.delayUntil(application -> checkApplicationViewRequest(application, requestType)))
292294
.zipWhen(tuple -> applicationService.getAllDependentModulesFromApplication(tuple.getT2(), true), TupleUtils::merge)
293295
.zipWhen(tuple -> organizationService.getOrgCommonSettings(tuple.getT2().getOrganizationId()), TupleUtils::merge)

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,17 +84,17 @@ public Mono<ResponseView<ApplicationView>> delete(@PathVariable String applicati
8484
}
8585

8686
@Override
87-
public Mono<ResponseView<ApplicationView>> getEditingApplication(@PathVariable String applicationId) {
87+
public Mono<ResponseView<ApplicationView>> getEditingApplication(@PathVariable String applicationId, @PathVariable Boolean withDeleted) {
8888
return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId ->
89-
applicationApiService.getEditingApplication(appId)
89+
applicationApiService.getEditingApplication(appId, withDeleted)
9090
.delayUntil(__ -> applicationApiService.updateUserApplicationLastViewTime(appId))
9191
.map(ResponseView::success));
9292
}
9393

9494
@Override
95-
public Mono<ResponseView<ApplicationView>> getPublishedApplication(@PathVariable String applicationId) {
95+
public Mono<ResponseView<ApplicationView>> getPublishedApplication(@PathVariable String applicationId, @PathVariable Boolean withDeleted) {
9696
return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId ->
97-
applicationApiService.getPublishedApplication(appId, ApplicationRequestType.PUBLIC_TO_ALL)
97+
applicationApiService.getPublishedApplication(appId, ApplicationRequestType.PUBLIC_TO_ALL, withDeleted)
9898
.delayUntil(applicationView -> applicationApiService.updateUserApplicationLastViewTime(appId))
9999
.delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, APPLICATION_VIEW))
100100
.map(ResponseView::success));
@@ -103,7 +103,7 @@ public Mono<ResponseView<ApplicationView>> getPublishedApplication(@PathVariable
103103
@Override
104104
public Mono<ResponseView<ApplicationView>> getPublishedMarketPlaceApplication(@PathVariable String applicationId) {
105105
return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId ->
106-
applicationApiService.getPublishedApplication(appId, ApplicationRequestType.PUBLIC_TO_MARKETPLACE)
106+
applicationApiService.getPublishedApplication(appId, ApplicationRequestType.PUBLIC_TO_MARKETPLACE, false)
107107
.delayUntil(applicationView -> applicationApiService.updateUserApplicationLastViewTime(appId))
108108
.delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, APPLICATION_VIEW))
109109
.map(ResponseView::success));
@@ -112,7 +112,7 @@ public Mono<ResponseView<ApplicationView>> getPublishedMarketPlaceApplication(@P
112112
@Override
113113
public Mono<ResponseView<ApplicationView>> getAgencyProfileApplication(@PathVariable String applicationId) {
114114
return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId ->
115-
applicationApiService.getPublishedApplication(appId, ApplicationRequestType.AGENCY_PROFILE)
115+
applicationApiService.getPublishedApplication(appId, ApplicationRequestType.AGENCY_PROFILE, false)
116116
.delayUntil(applicationView -> applicationApiService.updateUserApplicationLastViewTime(appId))
117117
.delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, APPLICATION_VIEW))
118118
.map(ResponseView::success));

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public interface ApplicationEndpoints
8989
description = "Retrieve the DSL data of a Lowcoder Application in edit-mode by its ID."
9090
)
9191
@GetMapping("/{applicationId}")
92-
public Mono<ResponseView<ApplicationView>> getEditingApplication(@PathVariable String applicationId);
92+
public Mono<ResponseView<ApplicationView>> getEditingApplication(@PathVariable String applicationId, @PathVariable Boolean withDeleted);
9393

9494
@Operation(
9595
tags = TAG_APPLICATION_MANAGEMENT,
@@ -98,7 +98,7 @@ public interface ApplicationEndpoints
9898
description = "Retrieve the DSL data of a Lowcoder Application in view-mode by its ID."
9999
)
100100
@GetMapping("/{applicationId}/view")
101-
public Mono<ResponseView<ApplicationView>> getPublishedApplication(@PathVariable String applicationId);
101+
public Mono<ResponseView<ApplicationView>> getPublishedApplication(@PathVariable String applicationId, @PathVariable Boolean withDeleted);
102102

103103
@Operation(
104104
tags = TAG_APPLICATION_MANAGEMENT,

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,9 +194,9 @@ public Mono<ResponseView<Organization>> updateSlug(@PathVariable String orgId, @
194194
}
195195

196196
@Override
197-
public Mono<ResponseView<Organization>> getOrganization(@PathVariable String orgId) {
197+
public Mono<ResponseView<Organization>> getOrganization(@PathVariable String orgId, @PathVariable Boolean includeDeleted) {
198198
return gidService.convertOrganizationIdToObjectId(orgId)
199-
.flatMap(id -> organizationService.getById(id))
199+
.flatMap(id -> Boolean.TRUE.equals(includeDeleted) ? organizationService.getByIdWithDeleted(id) : organizationService.getById(id))
200200
.switchIfEmpty(Mono.error(new BizException(BizError.ORGANIZATION_NOT_FOUND, "ORGANIZATION_NOT_FOUND")))
201201
.map(ResponseView::success);
202202
}

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationEndpoints.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ public Mono<ResponseView<Boolean>> removeUserFromOrg(@PathVariable String orgId,
191191
description = "Retrieve details of a specific Organization within Lowcoder using its unique ID."
192192
)
193193
@GetMapping("/{orgId}")
194-
public Mono<ResponseView<Organization>> getOrganization(@PathVariable String orgId);
194+
public Mono<ResponseView<Organization>> getOrganization(@PathVariable String orgId, @PathVariable Boolean includeDeleted);
195195

196196
public record UpdateOrgCommonSettingsRequest(String key, Object value) {
197197

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy