Skip to content

Commit 47d65d7

Browse files
committed
#1331: added folder Id to all applicationInfoViews
1 parent a5c1aad commit 47d65d7

File tree

3 files changed

+48
-38
lines changed

3 files changed

+48
-38
lines changed

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

Lines changed: 40 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.lowcoder.domain.application.service.ApplicationService;
2929
import org.lowcoder.domain.datasource.model.Datasource;
3030
import org.lowcoder.domain.datasource.service.DatasourceService;
31+
import org.lowcoder.domain.folder.service.FolderElementRelationService;
3132
import org.lowcoder.domain.interaction.UserApplicationInteractionService;
3233
import org.lowcoder.domain.organization.model.Organization;
3334
import org.lowcoder.domain.organization.service.OrgMemberService;
@@ -94,6 +95,7 @@ public class ApplicationApiServiceImpl implements ApplicationApiService {
9495
private final DatasourceService datasourceService;
9596
private final ApplicationHistorySnapshotService applicationHistorySnapshotService;
9697
private final ApplicationRecordService applicationRecordService;
98+
private final FolderElementRelationService folderElementRelationService;
9799

98100
@Override
99101
public Mono<ApplicationView> create(CreateApplicationRequest createApplicationRequest) {
@@ -185,10 +187,10 @@ public Mono<ApplicationView> delete(String applicationId) {
185187
return checkApplicationStatus(applicationId, ApplicationStatus.RECYCLED)
186188
.then(updateApplicationStatus(applicationId, ApplicationStatus.DELETED))
187189
.then(applicationService.findById(applicationId))
188-
.map(application -> ApplicationView.builder()
189-
.applicationInfoView(buildView(application))
190+
.flatMap(application -> buildView(application).map(appInfoView -> ApplicationView.builder()
191+
.applicationInfoView(appInfoView)
190192
.applicationDSL(application.getEditingApplicationDSL())
191-
.build());
193+
.build()));
192194
}
193195

194196
@Override
@@ -269,13 +271,14 @@ public Mono<ApplicationView> getEditingApplication(String applicationId) {
269271
.map(dsl -> Map.entry(app.getId(), sanitizeDsl(dsl))))
270272
.collectMap(Map.Entry::getKey, Map.Entry::getValue)
271273
.flatMap(dependentModuleDsl ->
272-
applicationService.updateById(applicationId, application).map(__ ->
273-
ApplicationView.builder()
274-
.applicationInfoView(buildView(application, permission.getResourceRole().getValue()))
275-
.applicationDSL(application.getEditingApplicationDSL())
276-
.moduleDSL(dependentModuleDsl)
277-
.orgCommonSettings(commonSettings)
278-
.build()));
274+
applicationService.updateById(applicationId, application).flatMap(__ ->
275+
buildView(application, permission.getResourceRole().getValue()).map(appInfoView ->
276+
ApplicationView.builder()
277+
.applicationInfoView(appInfoView)
278+
.applicationDSL(application.getEditingApplicationDSL())
279+
.moduleDSL(dependentModuleDsl)
280+
.orgCommonSettings(commonSettings)
281+
.build())));
279282
});
280283
}
281284

@@ -299,14 +302,15 @@ public Mono<ApplicationView> getPublishedApplication(String applicationId, Appli
299302
.map(dsl -> Map.entry(app.getId(), sanitizeDsl(dsl))))
300303
.collectMap(Map.Entry::getKey, Map.Entry::getValue)
301304
.flatMap(dependentModuleDsl ->
302-
application.getLiveApplicationDsl(applicationRecordService).map(liveDsl ->
303-
ApplicationView.builder()
304-
.applicationInfoView(buildView(application, permission.getResourceRole().getValue()))
305-
.applicationDSL(sanitizeDsl(liveDsl))
306-
.moduleDSL(dependentModuleDsl)
307-
.orgCommonSettings(commonSettings)
308-
.templateId(templateId)
309-
.build())
305+
application.getLiveApplicationDsl(applicationRecordService).flatMap(liveDsl ->
306+
buildView(application, permission.getResourceRole().getValue()).map(appInfoView ->
307+
ApplicationView.builder()
308+
.applicationInfoView(appInfoView)
309+
.applicationDSL(sanitizeDsl(liveDsl))
310+
.moduleDSL(dependentModuleDsl)
311+
.orgCommonSettings(commonSettings)
312+
.templateId(templateId)
313+
.build()))
310314
);
311315
})
312316
.delayUntil(applicationView -> {
@@ -346,10 +350,10 @@ public Mono<ApplicationView> update(String applicationId, Application applicatio
346350
applicationId, EDIT_APPLICATIONS))
347351
.delayUntil(__ -> checkDatasourcePermissions(application))
348352
.flatMap(permission -> doUpdateApplication(applicationId, application)
349-
.map(applicationUpdated -> ApplicationView.builder()
350-
.applicationInfoView(buildView(applicationUpdated, permission.getResourceRole().getValue()))
353+
.flatMap(applicationUpdated -> buildView(applicationUpdated, permission.getResourceRole().getValue()).map(appInfoView -> ApplicationView.builder()
354+
.applicationInfoView(appInfoView)
351355
.applicationDSL(applicationUpdated.getEditingApplicationDSL())
352-
.build()));
356+
.build())));
353357
}
354358

355359
private Mono<Application> doUpdateApplication(String applicationId, Application application) {
@@ -376,10 +380,10 @@ public Mono<ApplicationView> publish(String applicationId, ApplicationPublishReq
376380
.build())
377381
.flatMap(applicationRecordService::insert))
378382
.flatMap(permission -> applicationService.findById(applicationId)
379-
.map(applicationUpdated -> ApplicationView.builder()
380-
.applicationInfoView(buildView(applicationUpdated, permission.getResourceRole().getValue()))
383+
.flatMap(applicationUpdated -> buildView(applicationUpdated, permission.getResourceRole().getValue()).map(appInfoView -> ApplicationView.builder()
384+
.applicationInfoView(appInfoView)
381385
.applicationDSL(applicationUpdated.getEditingApplicationDSL())
382-
.build()));
386+
.build())));
383387
}
384388

385389
@Override
@@ -472,10 +476,10 @@ public Mono<ApplicationView> createFromTemplate(String templateId) {
472476
.delayUntil(orgMember -> orgDevChecker.checkCurrentOrgDev())
473477
.delayUntil(bizThresholdChecker::checkMaxOrgApplicationCount)
474478
.flatMap(orgMember -> templateSolutionService.createFromTemplate(templateId, orgMember.getOrgId(), orgMember.getUserId())
475-
.map(applicationCreated -> ApplicationView.builder()
476-
.applicationInfoView(buildView(applicationCreated))
479+
.flatMap(applicationCreated -> buildView(applicationCreated).map(appInfoView -> ApplicationView.builder()
480+
.applicationInfoView(appInfoView)
477481
.applicationDSL(applicationCreated.getEditingApplicationDSL())
478-
.build()));
482+
.build())));
479483
}
480484

481485
@Override
@@ -547,8 +551,14 @@ public Mono<ResourcePermission> checkApplicationPermissionWithReadableErrorMsg(S
547551

548552

549553

550-
private ApplicationInfoView buildView(Application application, String role) {
551-
return buildView(application, role, null);
554+
private Mono<ApplicationInfoView> buildView(Application application, String role) {
555+
return Mono.just(buildView(application, role, null)).delayUntil(applicationInfoView -> {
556+
String applicationId = applicationInfoView.getApplicationId();
557+
return folderElementRelationService.getByElementIds(List.of(applicationId))
558+
.doOnNext(folderElement -> {
559+
applicationInfoView.setFolderId(folderElement.folderId());
560+
}).then();
561+
});
552562
}
553563

554564
private ApplicationInfoView buildView(Application application, String role, @Nullable String folderId) {
@@ -572,7 +582,7 @@ private ApplicationInfoView buildView(Application application, String role, @Nul
572582
.build();
573583
}
574584

575-
private ApplicationInfoView buildView(Application application) {
585+
private Mono<ApplicationInfoView> buildView(Application application) {
576586
return buildView(application, "");
577587
}
578588

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

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ public class ApplicationController implements ApplicationEndpoints {
3939
private final BusinessEventPublisher businessEventPublisher;
4040
private final SessionUserService sessionUserService;
4141
private final GidService gidService;
42-
private final FolderElementRelationService folderElementRelationService;
4342
private final ApplicationRecordService applicationRecordService;
4443

4544
@Override
@@ -187,13 +186,6 @@ public Mono<ResponseView<List<ApplicationInfoView>>> getApplications(@RequestPar
187186
@RequestParam(required = false, defaultValue = "0") Integer pageSize) {
188187
ApplicationType applicationTypeEnum = applicationType == null ? null : ApplicationType.fromValue(applicationType);
189188
var flux = userHomeApiService.getAllAuthorisedApplications4CurrentOrgMember(applicationTypeEnum, applicationStatus, withContainerSize, name, category)
190-
.delayUntil(applicationInfoView -> {
191-
String applicationId = applicationInfoView.getApplicationId();
192-
return folderElementRelationService.getByElementIds(List.of(applicationId))
193-
.doOnNext(folderElement -> {
194-
applicationInfoView.setFolderId(folderElement.folderId());
195-
}).then();
196-
})
197189
.cache();
198190
Mono<Long> countMono = flux.count();
199191
var flux1 = flux.skip((long) (pageNum - 1) * pageSize);

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.lowcoder.domain.bundle.model.BundleStatus;
2222
import org.lowcoder.domain.bundle.service.BundleElementRelationServiceImpl;
2323
import org.lowcoder.domain.bundle.service.BundleService;
24+
import org.lowcoder.domain.folder.service.FolderElementRelationService;
2425
import org.lowcoder.domain.interaction.UserApplicationInteraction;
2526
import org.lowcoder.domain.interaction.UserApplicationInteractionService;
2627
import org.lowcoder.domain.organization.model.OrgMember;
@@ -72,6 +73,7 @@ public class UserHomeApiServiceImpl implements UserHomeApiService {
7273
private final BundleElementRelationServiceImpl bundleElementRelationServiceImpl;
7374
private final BundleService bundleService;
7475
private final ApplicationRecordService applicationRecordService;
76+
private final FolderElementRelationService folderElementRelationService;
7577

7678
@Override
7779
public Mono<UserProfileView> buildUserProfileView(User user, ServerWebExchange exchange) {
@@ -607,6 +609,12 @@ private Mono<ApplicationInfoView> buildView(Application application, ResourceRol
607609
.build()));
608610
}
609611
return Mono.just(applicationInfoViewBuilder.build());
612+
}).delayUntil(applicationInfoView -> {
613+
String applicationId = applicationInfoView.getApplicationId();
614+
return folderElementRelationService.getByElementIds(List.of(applicationId))
615+
.doOnNext(folderElement -> {
616+
applicationInfoView.setFolderId(folderElement.folderId());
617+
}).then();
610618
});
611619
}
612620

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