Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitfbdbb54

Browse files
Thomasrludomikula
Thomasr
authored andcommitted
api for updating editing state
1 parent04f7bdb commitfbdbb54

File tree

9 files changed

+59
-4
lines changed

9 files changed

+59
-4
lines changed

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ public interface ApplicationService {
2323

2424
Mono<Application>publish(StringapplicationId);
2525

26+
Mono<Boolean>updateEditState(StringapplicationId,BooleaneditingFinished);
27+
2628
Mono<Application>create(ApplicationnewApplication,StringvisitorId);
2729

2830
Flux<Application>findByOrganizationIdWithDsl(StringorganizationId);

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,16 @@ public Mono<Application> publish(String applicationId) {
9393
});
9494
}
9595

96+
@Override
97+
publicMono<Boolean>updateEditState(StringapplicationId,BooleaneditingFinished) {
98+
returnfindById(applicationId)
99+
.flatMap(newApplication -> {
100+
Applicationapplication =Application.builder().editingUserId("").build();
101+
if(editingFinished)returnmongoUpsertHelper.updateById(application,applicationId);
102+
returnMono.just(true);
103+
});
104+
}
105+
96106
@Override
97107
publicMono<Application>create(ApplicationnewApplication,StringvisitorId) {
98108
returnrepository.save(newApplication)

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ public interface ApplicationApiService {
3535

3636
Mono<ApplicationView>publish(StringapplicationId);
3737

38+
Mono<Boolean>updateEditState(StringapplicationId,ApplicationEndpoints.UpdateEditStateRequestupdateEditStateRequest);
39+
3840
Mono<Boolean>grantPermission(StringapplicationId,
3941
Set<String>userIds,
4042
Set<String>groupIds,ResourceRolerole);

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,15 @@ public Mono<ApplicationView> publish(String applicationId) {
371371
.build()));
372372
}
373373

374+
@Override
375+
publicMono<Boolean>updateEditState(StringapplicationId,ApplicationEndpoints.UpdateEditStateRequestupdateEditStateRequest) {
376+
returncheckApplicationStatus(applicationId,NORMAL)
377+
.then(sessionUserService.getVisitorId())
378+
.flatMap(userId ->resourcePermissionService.checkAndReturnMaxPermission(userId,
379+
applicationId,EDIT_APPLICATIONS))
380+
.flatMap(permission ->applicationService.updateEditState(applicationId,updateEditStateRequest.editingFinished()));
381+
}
382+
374383
@Override
375384
publicMono<Boolean>grantPermission(StringapplicationId,
376385
Set<String>userIds,

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,13 @@ public Mono<ResponseView<ApplicationView>> publish(@PathVariable String applicat
142142
.map(ResponseView::success);
143143
}
144144

145+
@Override
146+
publicMono<ResponseView<Boolean>>updateEditState(@PathVariableStringapplicationId,@RequestBodyUpdateEditStateRequestupdateEditStateRequest) {
147+
StringappId =gidService.convertApplicationIdToObjectId(applicationId);
148+
returnapplicationApiService.updateEditState(appId,updateEditStateRequest)
149+
.map(ResponseView::success);
150+
}
151+
145152
@Override
146153
publicMono<ResponseView<UserHomepageView>>getUserHomePage(@RequestParam(required =false,defaultValue ="0")intapplicationType) {
147154
ApplicationTypetype =ApplicationType.fromValue(applicationType);

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,16 @@ public Mono<ResponseView<ApplicationView>> update(@PathVariable String applicati
137137
@PostMapping("/{applicationId}/publish")
138138
publicMono<ResponseView<ApplicationView>>publish(@PathVariableStringapplicationId);
139139

140+
@Operation(
141+
tags =TAG_APPLICATION_MANAGEMENT,
142+
operationId ="updateApplicationEditingState",
143+
summary ="Update Application editing state",
144+
description ="Update the editing state of a specific Lowcoder Application identified by its ID."
145+
)
146+
@PutMapping("/editState/{applicationId}")
147+
publicMono<ResponseView<Boolean>>updateEditState(@PathVariableStringapplicationId,
148+
@RequestBodyUpdateEditStateRequestupdateEditStateRequest);
149+
140150
@Operation(
141151
tags =TAG_APPLICATION_MANAGEMENT,
142152
operationId ="getUserHomepageApplication",
@@ -285,5 +295,7 @@ public record CreateApplicationRequest(@JsonProperty("orgId") String organizatio
285295
Map<String,Object>editingApplicationDSL,
286296
@NullableStringfolderId) {
287297
}
298+
publicrecordUpdateEditStateRequest(BooleaneditingFinished) {
299+
}
288300

289301
}

‎server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceIntegrationTest.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
packageorg.lowcoder.api.application;
22

33

4+
importjakarta.persistence.Tuple;
45
importlombok.extern.slf4j.Slf4j;
56
importorg.junit.jupiter.api.Assertions;
67
importorg.junit.jupiter.api.BeforeEach;
@@ -26,6 +27,7 @@
2627
importorg.springframework.test.context.ActiveProfiles;
2728
importreactor.core.publisher.Mono;
2829
importreactor.test.StepVerifier;
30+
importreactor.util.function.Tuple2;
2931

3032
importjava.util.Map;
3133
importjava.util.Set;
@@ -69,7 +71,6 @@ public void testCreateApplicationSuccess() {
6971
//
7072
Mono<ApplicationView>applicationViewMono =datasourceMono.map(datasource ->newCreateApplicationRequest(
7173
"org01",
72-
"",
7374
"app05",
7475
ApplicationType.APPLICATION.getValue(),
7576
Map.of("comp","table"),
@@ -105,7 +106,6 @@ public void testUpdateApplicationFailedDueToLackOfDatasourcePermissions() {
105106
//
106107
Mono<ApplicationView>applicationViewMono =datasourceMono.map(datasource ->newCreateApplicationRequest(
107108
"org01",
108-
"",
109109
"app03",
110110
ApplicationType.APPLICATION.getValue(),
111111
Map.of("comp","table"),
@@ -127,4 +127,17 @@ public void testUpdateApplicationFailedDueToLackOfDatasourcePermissions() {
127127
&&bizException.getMessageKey().equals("APPLICATION_EDIT_ERROR_LACK_OF_DATASOURCE_PERMISSIONS"))
128128
.verify();
129129
}
130+
131+
@Test
132+
@WithMockUser
133+
publicvoidtestUpdateEditingStateSuccess() {
134+
Mono<ApplicationView>applicationViewMono =applicationApiService.create(newCreateApplicationRequest("org01","app1",ApplicationType.APPLICATION.getValue(),null,null,null));
135+
Mono<ApplicationView>updateEditStateMono =applicationViewMono.delayUntil(app ->applicationApiService.updateEditState(app.getApplicationInfoView().getApplicationId(),newApplicationEndpoints.UpdateEditStateRequest(true)));
136+
Mono<ApplicationView>app =updateEditStateMono.flatMap(applicationView ->applicationApiService.getEditingApplication(applicationView.getApplicationInfoView().getApplicationId()));
137+
StepVerifier.create(app)
138+
.assertNext(application -> {
139+
Assertions.assertEquals("",application.getApplicationInfoView().getEditingUserId());
140+
})
141+
.verifyComplete();
142+
}
130143
}

‎server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ public void testDeleteNormalApplicationWithError() {
125125

126126
privateMono<ApplicationView>createApplication(Stringname,StringfolderId) {
127127
CreateApplicationRequestcreateApplicationRequest =
128-
newCreateApplicationRequest("org01","",name,ApplicationType.APPLICATION.getValue(),
128+
newCreateApplicationRequest("org01",name,ApplicationType.APPLICATION.getValue(),
129129
Map.of("comp","table"),Map.of("comp","list"),folderId);
130130
returnapplicationApiService.create(createApplicationRequest);
131131
}

‎server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/common/TestRedisConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
importjava.util.concurrent.atomic.AtomicInteger;
1111

1212
@SuppressWarnings("UnstableApiUsage")
13-
@TestConfiguration
13+
//@TestConfiguration
1414
publicclassTestRedisConfiguration {
1515

1616
privatestaticfinalAtomicIntegerSTATE =newAtomicInteger(0);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp