Skip to content

Commit eefe884

Browse files
dragonpooludomikula
authored andcommitted
Added before/after detail of datasource update event
1 parent 7468361 commit eefe884

File tree

3 files changed

+21
-16
lines changed

3 files changed

+21
-16
lines changed

server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/event/datasource/DatasourceEvent.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ public class DatasourceEvent extends AbstractEvent {
1111
private final String datasourceId;
1212
private final String name;
1313
private final String type;
14+
private final String oldName;
1415

1516
private final EventType eventType;
1617
}

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/datasource/DatasourceController.java

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.lowcoder.api.framework.view.PageResponseView;
1111
import org.lowcoder.api.framework.view.ResponseView;
1212
import org.lowcoder.api.permission.view.CommonPermissionView;
13+
import org.lowcoder.api.usermanagement.view.UpdateGroupRequest;
1314
import org.lowcoder.api.util.BusinessEventPublisher;
1415
import org.lowcoder.api.util.GidService;
1516
import org.lowcoder.domain.datasource.model.Datasource;
@@ -52,7 +53,7 @@ public class DatasourceController implements DatasourceEndpoints
5253
public Mono<ResponseView<Datasource>> create(@Valid @RequestBody UpsertDatasourceRequest request) {
5354
return datasourceApiService.create(upsertDatasourceRequestMapper.resolve(request))
5455
.delayUntil(datasourceService::removePasswordTypeKeysFromJsDatasourcePluginConfig)
55-
.delayUntil(datasource -> businessEventPublisher.publishDatasourceEvent(datasource, DATA_SOURCE_CREATE))
56+
.delayUntil(datasource -> businessEventPublisher.publishDatasourceEvent(datasource, DATA_SOURCE_CREATE, null))
5657
.map(ResponseView::success);
5758
}
5859

@@ -69,23 +70,25 @@ public Mono<ResponseView<Datasource>> update(@PathVariable String id,
6970
@RequestBody UpsertDatasourceRequest request) {
7071
Datasource resolvedDatasource = upsertDatasourceRequestMapper.resolve(request);
7172
return gidService.convertDatasourceIdToObjectId(id).flatMap(objectId ->
72-
datasourceApiService.update(objectId, resolvedDatasource)
73-
.delayUntil(datasourceService::removePasswordTypeKeysFromJsDatasourcePluginConfig)
74-
.delayUntil(datasource -> businessEventPublisher.publishDatasourceEvent(datasource, DATA_SOURCE_UPDATE))
75-
.map(ResponseView::success));
73+
datasourceService.getById(id).flatMap(orgDatasource ->
74+
datasourceApiService.update(objectId, resolvedDatasource)
75+
.delayUntil(datasourceService::removePasswordTypeKeysFromJsDatasourcePluginConfig)
76+
.delayUntil(datasource -> businessEventPublisher.publishDatasourceEvent(datasource, DATA_SOURCE_UPDATE, orgDatasource.getName()))
77+
.map(ResponseView::success)));
7678
}
7779

7880
@Override
7981
public Mono<ResponseView<Boolean>> delete(@PathVariable String id) {
8082
return gidService.convertDatasourceIdToObjectId(id).flatMap(objectId ->
81-
datasourceApiService.delete(objectId)
82-
.delayUntil(result -> {
83-
if (BooleanUtils.isTrue(result)) {
84-
return businessEventPublisher.publishDatasourceEvent(objectId, DATA_SOURCE_DELETE);
85-
}
86-
return Mono.empty();
87-
})
88-
.map(ResponseView::success));
83+
datasourceService.getById(id).flatMap(orgDatasource ->
84+
datasourceApiService.delete(objectId)
85+
.delayUntil(result -> {
86+
if (BooleanUtils.isTrue(result)) {
87+
return businessEventPublisher.publishDatasourceEvent(objectId, DATA_SOURCE_DELETE, orgDatasource.getName());
88+
}
89+
return Mono.empty();
90+
})
91+
.map(ResponseView::success)));
8992
}
9093

9194
@Override

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/util/BusinessEventPublisher.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -677,23 +677,24 @@ public void publishQueryExecutionEvent(QueryExecutionEvent queryExecutionEvent)
677677
applicationEventPublisher.publishEvent(queryExecutionEvent);
678678
}
679679

680-
public Mono<Void> publishDatasourceEvent(String id, EventType eventType) {
680+
public Mono<Void> publishDatasourceEvent(String id, EventType eventType, String oldName) {
681681
return datasourceService.getById(id)
682-
.flatMap(datasource -> publishDatasourceEvent(datasource, eventType))
682+
.flatMap(datasource -> publishDatasourceEvent(datasource, eventType, oldName))
683683
.onErrorResume(throwable -> {
684684
log.error("publishDatasourceEvent error.", throwable);
685685
return Mono.empty();
686686
});
687687
}
688688

689-
public Mono<Void> publishDatasourceEvent(Datasource datasource, EventType eventType) {
689+
public Mono<Void> publishDatasourceEvent(Datasource datasource, EventType eventType, String oldName) {
690690
return sessionUserService.getVisitorOrgMemberCache()
691691
.zipWith(sessionUserService.getVisitorToken())
692692
.flatMap(tuple -> {
693693
DatasourceEvent event = DatasourceEvent.builder()
694694
.datasourceId(datasource.getId())
695695
.name(datasource.getName())
696696
.type(datasource.getType())
697+
.oldName(oldName)
697698
.eventType(eventType)
698699
.userId(tuple.getT1().getUserId())
699700
.orgId(tuple.getT1().getOrgId())

0 commit comments

Comments
 (0)