Skip to content

Commit 0dfebdd

Browse files
dragonpooludomikula
authored andcommitted
fix publish errors and make back compatible
1 parent 5af0beb commit 0dfebdd

File tree

3 files changed

+26
-4
lines changed

3 files changed

+26
-4
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ public Mono<ApplicationView> publish(String applicationId, ApplicationPublishReq
374374
.applicationId(application.getId())
375375
.applicationDSL(application.getEditingApplicationDSL())
376376
.build())
377-
.map(applicationRecordService::insert))
377+
.flatMap(applicationRecordService::insert))
378378
.flatMap(permission -> applicationService.findById(applicationId)
379379
.map(applicationUpdated -> ApplicationView.builder()
380380
.applicationInfoView(buildView(applicationUpdated, permission.getResourceRole().getValue()))

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

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.lowcoder.api.application;
22

3+
import io.sentry.protocol.App;
34
import lombok.RequiredArgsConstructor;
45
import org.lowcoder.api.application.view.*;
56
import org.lowcoder.api.framework.view.PageResponseView;
@@ -13,6 +14,7 @@
1314
import org.lowcoder.domain.application.model.ApplicationRequestType;
1415
import org.lowcoder.domain.application.model.ApplicationStatus;
1516
import org.lowcoder.domain.application.model.ApplicationType;
17+
import org.lowcoder.domain.application.service.ApplicationRecordService;
1618
import org.lowcoder.domain.folder.service.FolderElementRelationService;
1719
import org.lowcoder.domain.permission.model.ResourceRole;
1820
import org.springframework.web.bind.annotation.PathVariable;
@@ -22,6 +24,7 @@
2224
import reactor.core.publisher.Mono;
2325

2426
import java.util.List;
27+
import java.util.Objects;
2528

2629
import static org.apache.commons.collections4.SetUtils.emptyIfNull;
2730
import static org.lowcoder.plugin.api.event.LowcoderEvent.EventType.*;
@@ -38,6 +41,7 @@ public class ApplicationController implements ApplicationEndpoints {
3841
private final SessionUserService sessionUserService;
3942
private final GidService gidService;
4043
private final FolderElementRelationService folderElementRelationService;
44+
private final ApplicationRecordService applicationRecordService;
4145

4246
@Override
4347
public Mono<ResponseView<ApplicationView>> create(@RequestBody CreateApplicationRequest createApplicationRequest) {
@@ -130,9 +134,27 @@ public Mono<ResponseView<ApplicationView>> update(@PathVariable String applicati
130134

131135
@Override
132136
public Mono<ResponseView<ApplicationView>> publish(@PathVariable String applicationId,
133-
@RequestBody ApplicationPublishRequest applicationPublishRequest) {
137+
@RequestBody(required = false) ApplicationPublishRequest applicationPublishRequest) {
134138
return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId ->
135-
applicationApiService.publish(appId, applicationPublishRequest)
139+
applicationRecordService.getLatestRecordByApplicationId(applicationId)
140+
.map(applicationRecord -> {
141+
String tag = applicationRecord.getTag(); // Assuming format is 1.0.0
142+
String newtag = "1.0.0";
143+
144+
if (tag != null && tag.matches("\\d+\\.\\d+\\.\\d+")) { // Validate tag format
145+
String[] parts = tag.split("\\."); // Split by "."
146+
int major = Integer.parseInt(parts[0]);
147+
int minor = Integer.parseInt(parts[1]);
148+
int patch = Integer.parseInt(parts[2]);
149+
150+
patch++; // Increment the patch version
151+
newtag = String.format("%d.%d.%d", major, minor, patch);
152+
}
153+
154+
return newtag;
155+
})
156+
.switchIfEmpty(Mono.just("1.0.0"))
157+
.flatMap(newtag -> applicationApiService.publish(appId, Objects.requireNonNullElse(applicationPublishRequest, new ApplicationPublishRequest("", newtag))))
136158
.map(ResponseView::success));
137159
}
138160

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ public Mono<ResponseView<ApplicationView>> update(@PathVariable String applicati
134134
)
135135
@PostMapping("/{applicationId}/publish")
136136
public Mono<ResponseView<ApplicationView>> publish(@PathVariable String applicationId,
137-
@RequestBody ApplicationPublishRequest applicationPublishRequest);
137+
@RequestBody(required = false) ApplicationPublishRequest applicationPublishRequest);
138138

139139
@Operation(
140140
tags = TAG_APPLICATION_MANAGEMENT,

0 commit comments

Comments
 (0)