Skip to content

Commit 2977b16

Browse files
Thomasrludomikula
authored andcommitted
Added meta api for db objects
1 parent e96bf13 commit 2977b16

File tree

18 files changed

+212
-0
lines changed

18 files changed

+212
-0
lines changed

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ public class Application extends HasIdAndAuditing {
4747
private Integer applicationType;
4848
private ApplicationStatus applicationStatus;
4949

50+
@Setter
5051
private Map<String, Object> editingApplicationDSL;
5152

5253
@Setter

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/repository/BundleRepository.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
public interface BundleRepository extends ReactiveMongoRepository<Bundle, String> {
1414
Mono<Void> deleteAllByGid(Collection<String> gids);
1515
Flux<Bundle> findByGid(@Nonnull String gid);
16+
Flux<Bundle> findAllByGid(Collection<String> gids);
1617

1718
Flux<Bundle> findByCreatedBy(String userId);
1819
/**

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/service/BundleService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public interface BundleService {
1616
Mono<Boolean> updateById(String id, Bundle resource);
1717

1818
Mono<Bundle> findById(String id);
19+
Flux<Bundle> findByIdIn(Collection<String> ids);
1920

2021
Mono<Bundle> findByIdWithoutDsl(String id);
2122

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/service/BundleServiceImpl.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import java.util.Collection;
2222
import java.util.Map;
23+
import java.util.Optional;
2324
import java.util.Set;
2425
import java.util.stream.Collectors;
2526

@@ -56,6 +57,15 @@ public Mono<Bundle> findById(String id) {
5657
.switchIfEmpty(Mono.error(new BizException(BizError.NO_RESOURCE_FOUND, "BUNDLE_NOT_FOUND", id)));
5758
}
5859

60+
@Override
61+
public Flux<Bundle> findByIdIn(Collection<String> ids) {
62+
Optional<String> first = ids.stream().findFirst();
63+
if(first.isPresent() && FieldName.isGID(first.get()))
64+
return repository.findAllByGid(ids);
65+
66+
return repository.findAllById(ids);
67+
}
68+
5969
@Override
6070
public Mono<Bundle> findByIdWithoutDsl(String id) {
6171
if (id == null) {

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/datasource/repository/DatasourceRepository.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,15 @@ public Mono<Datasource> findById(String datasourceId) {
6262
.flatMap(this::convertToDomainObjectAndDecrypt);
6363
}
6464

65+
public Flux<Datasource> findByIds(Collection<String> datasourceIds) {
66+
Optional<String> first = datasourceIds.stream().findAny();
67+
if(first.isPresent() && FieldName.isGID(first.get()))
68+
return repository.findAllByGidIn(datasourceIds)
69+
.flatMap(this::convertToDomainObjectAndDecrypt);
70+
return repository.findAllById(datasourceIds)
71+
.flatMap(this::convertToDomainObjectAndDecrypt);
72+
}
73+
6574
public Mono<Datasource> findWorkspacePredefinedDatasourceByOrgIdAndType(String organizationId, String type) {
6675
return repository.findByOrganizationIdAndTypeAndCreationSource(organizationId, type,
6776
DatasourceCreationSource.LEGACY_WORKSPACE_PREDEFINED.getValue())

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public interface DatasourceService {
1515
Mono<Datasource> update(String id, Datasource resource);
1616

1717
Mono<Datasource> getById(String id);
18+
Flux<Datasource> getByIds(Collection<String> ids);
1819

1920
Mono<Boolean> delete(String id);
2021

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/datasource/service/impl/DatasourceServiceImpl.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,32 @@ public Mono<Datasource> getById(String id) {
101101
return repository.findById(id);
102102
}
103103

104+
@Override
105+
public Flux<Datasource> getByIds(Collection<String> ids) {
106+
Flux<Datasource> builtDatasourceFlux = Flux.fromStream(ids.stream().filter(id-> StringUtils.equals(id, Datasource.QUICK_REST_API_ID)
107+
|| StringUtils.equals(id, Datasource.QUICK_GRAPHQL_ID)
108+
|| StringUtils.equals(id, Datasource.LOWCODER_API_ID)
109+
).map(id-> {
110+
if (StringUtils.equals(id, Datasource.QUICK_REST_API_ID)) {
111+
return Datasource.QUICK_REST_API;
112+
}
113+
114+
if (StringUtils.equals(id, Datasource.QUICK_GRAPHQL_ID)) {
115+
return Datasource.QUICK_GRAPHQL_API;
116+
}
117+
118+
if (StringUtils.equals(id, Datasource.LOWCODER_API_ID)) {
119+
return Datasource.LOWCODER_API;
120+
}
121+
return Datasource.LOWCODER_API;
122+
}));
123+
124+
return Flux.concat(builtDatasourceFlux, repository.findByIds(ids.stream().filter(id-> !(StringUtils.equals(id, Datasource.QUICK_REST_API_ID)
125+
|| StringUtils.equals(id, Datasource.QUICK_GRAPHQL_ID)
126+
|| StringUtils.equals(id, Datasource.LOWCODER_API_ID))
127+
).toList()));
128+
}
129+
104130
private Mono<Datasource> validateDatasource(Datasource datasource) {
105131

106132
if (datasource.getOrganizationId() == null) {

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/folder/repository/FolderRepository.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,6 @@ public interface FolderRepository extends ReactiveMongoRepository<Folder, String
1414

1515
Flux<Folder> findByOrganizationId(String organizationId);
1616
Flux<Folder> findByGid(String organizationGid);
17+
Flux<Folder> findByGidIn(Collection<String> ids);
1718
Mono<Void> deleteAllByGid(Collection<String> gids);
1819
}

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/folder/service/FolderService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ public interface FolderService {
1111

1212
Mono<Folder> findById(String id);
1313

14+
Flux<Folder> findByIds(Collection<String> ids);
15+
1416
Mono<Folder> create(Folder folder);
1517

1618
Flux<Folder> findByOrganizationId(String organizationId);

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/folder/service/FolderServiceImpl.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.lowcoder.domain.folder.service;
22

3+
import static org.lowcoder.domain.organization.model.OrganizationState.ACTIVE;
34
import static org.lowcoder.sdk.exception.BizError.NO_RESOURCE_FOUND;
45

56
import java.util.Collection;
@@ -46,6 +47,13 @@ public Mono<Folder> findById(String id) {
4647
.switchIfEmpty(Mono.error(new BizException(BizError.NO_RESOURCE_FOUND, "FOLDER_NOT_FOUND", id)));
4748
}
4849

50+
@Override
51+
public Flux<Folder> findByIds(Collection<String> ids) {
52+
if(!ids.isEmpty() && FieldName.isGID(ids.stream().findFirst().get()))
53+
return repository.findByGidIn(ids);
54+
return repository.findByGidIn(ids);
55+
}
56+
4957
@Override
5058
public Mono<Folder> create(Folder folder) {
5159
return repository.save(folder);

0 commit comments

Comments
 (0)