Skip to content

Commit a2d94a4

Browse files
dragonpooludomikula
authored andcommitted
Reduce useless fields from meta api response
1 parent 2977b16 commit a2d94a4

File tree

11 files changed

+191
-26
lines changed

11 files changed

+191
-26
lines changed

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public Mono<Folder> findById(String id) {
5151
public Flux<Folder> findByIds(Collection<String> ids) {
5252
if(!ids.isEmpty() && FieldName.isGID(ids.stream().findFirst().get()))
5353
return repository.findByGidIn(ids);
54-
return repository.findByGidIn(ids);
54+
return repository.findAllById(ids);
5555
}
5656

5757
@Override

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/MetaController.java

+12-9
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
import lombok.RequiredArgsConstructor;
44
import org.lowcoder.api.application.ApplicationApiService;
55
import org.lowcoder.api.framework.view.ResponseView;
6-
import org.lowcoder.api.meta.view.MetaView;
6+
import org.lowcoder.api.meta.view.*;
77
import org.lowcoder.domain.application.model.Application;
8+
import org.lowcoder.domain.application.service.ApplicationRecordService;
89
import org.lowcoder.domain.application.service.ApplicationServiceImpl;
910
import org.lowcoder.domain.bundle.model.Bundle;
1011
import org.lowcoder.domain.bundle.service.BundleServiceImpl;
@@ -20,6 +21,7 @@
2021
import org.lowcoder.domain.query.service.LibraryQueryServiceImpl;
2122
import org.lowcoder.domain.user.model.User;
2223
import org.lowcoder.domain.user.service.UserServiceImpl;
24+
import org.lowcoder.sdk.util.LocaleUtils;
2325
import org.springframework.web.bind.annotation.RequestBody;
2426
import org.springframework.web.bind.annotation.RestController;
2527
import reactor.core.publisher.Flux;
@@ -37,17 +39,18 @@ public class MetaController implements MetaEndpoints {
3739
private final BundleServiceImpl bundleServiceImpl;
3840
private final GroupServiceImpl groupServiceImpl;
3941
private final LibraryQueryServiceImpl libraryQueryServiceImpl;
42+
private final ApplicationRecordService applicationRecordService;
4043

4144
@Override
4245
public Mono<ResponseView<MetaView>> getMetaData(@RequestBody GetMetaDataRequest param) {
43-
Flux<Application> appsFlux = applicationServiceImpl.findByIdIn(param.appIds());
44-
Flux<User> usersFlux = userServiceImpl.getByIds(param.userIds()).flatMapMany(map -> Flux.fromIterable(map.values()));
45-
Flux<Organization> orgsFlux = organizationServiceImpl.getByIds(param.orgIds());
46-
Flux<Folder> foldersFlux = folderServiceImpl.findByIds(param.folderIds());
47-
Flux<Datasource> datasourcesFlux = datasourceServiceImpl.getByIds(param.datasourceIds());
48-
Flux<Bundle> bundlesFlux = bundleServiceImpl.findByIdIn(param.bundleIds());
49-
Flux<Group> groupsFlux = groupServiceImpl.getByIds(param.groupIds());
50-
Flux<LibraryQuery> queriesFlux = libraryQueryServiceImpl.getByIds(param.libraryQueryIds());
46+
Flux<ApplicationMetaView> appsFlux = applicationServiceImpl.findByIdIn(param.appIds()).flatMap(app -> ApplicationMetaView.of(app, applicationRecordService));
47+
Flux<UserMetaView> usersFlux = userServiceImpl.getByIds(param.userIds()).flatMapMany(map -> Flux.fromIterable(map.values())).map(UserMetaView::of);
48+
Flux<OrgMetaView> orgsFlux = organizationServiceImpl.getByIds(param.orgIds()).map(OrgMetaView::of);
49+
Flux<FolderMetaView> foldersFlux = folderServiceImpl.findByIds(param.folderIds()).map(FolderMetaView::of);
50+
Flux<DatasourceMetaView> datasourcesFlux = datasourceServiceImpl.getByIds(param.datasourceIds()).map(DatasourceMetaView::of);
51+
Flux<BundleMetaView> bundlesFlux = bundleServiceImpl.findByIdIn(param.bundleIds()).map(BundleMetaView::of);
52+
Flux<GroupMetaView> groupsFlux = Flux.deferContextual(contextView -> groupServiceImpl.getByIds(param.groupIds()).map(group -> GroupMetaView.of(group, LocaleUtils.getLocale(contextView))));
53+
Flux<LibraryQueryMetaView> queriesFlux = libraryQueryServiceImpl.getByIds(param.libraryQueryIds()).map(LibraryQueryMetaView::of);
5154
return Mono.zip(
5255
appsFlux.collectList(),
5356
usersFlux.collectList(),
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package org.lowcoder.api.meta.view;
2+
3+
import lombok.Getter;
4+
import lombok.experimental.SuperBuilder;
5+
import org.lowcoder.domain.application.model.Application;
6+
import org.lowcoder.domain.application.service.ApplicationRecordService;
7+
import reactor.core.publisher.Mono;
8+
9+
@SuperBuilder
10+
@Getter
11+
public class ApplicationMetaView {
12+
private String id;
13+
private String name;
14+
private String title;
15+
private String description;
16+
private String category;
17+
private String icon;
18+
19+
public static Mono<ApplicationMetaView> of(Application app, ApplicationRecordService applicationRecordService) {
20+
return Mono.zip(app.getTitle(applicationRecordService),
21+
app.getDescription(applicationRecordService),
22+
app.getCategory(applicationRecordService),
23+
app.getIcon(applicationRecordService)).map(tuple ->
24+
ApplicationMetaView.builder()
25+
.id(app.getId())
26+
.name(app.getName())
27+
.title(tuple.getT1())
28+
.description(tuple.getT2())
29+
.category(tuple.getT3())
30+
.icon(tuple.getT4())
31+
.build());
32+
}
33+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.lowcoder.api.meta.view;
2+
3+
import lombok.Getter;
4+
import lombok.experimental.SuperBuilder;
5+
import org.lowcoder.domain.bundle.model.Bundle;
6+
7+
@SuperBuilder
8+
@Getter
9+
public class BundleMetaView {
10+
private String id;
11+
private String name;
12+
13+
public static BundleMetaView of(Bundle bundle) {
14+
return BundleMetaView.builder()
15+
.id(bundle.getId())
16+
.name(bundle.getName())
17+
.build();
18+
}
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.lowcoder.api.meta.view;
2+
3+
import lombok.Getter;
4+
import lombok.experimental.SuperBuilder;
5+
import org.lowcoder.domain.datasource.model.Datasource;
6+
7+
@SuperBuilder
8+
@Getter
9+
public class DatasourceMetaView {
10+
private String id;
11+
private String name;
12+
13+
public static DatasourceMetaView of(Datasource datasource) {
14+
return DatasourceMetaView.builder()
15+
.id(datasource.getId())
16+
.name(datasource.getName())
17+
.build();
18+
}
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.lowcoder.api.meta.view;
2+
3+
import lombok.Getter;
4+
import lombok.experimental.SuperBuilder;
5+
import org.lowcoder.domain.folder.model.Folder;
6+
7+
@SuperBuilder
8+
@Getter
9+
public class FolderMetaView {
10+
private String id;
11+
private String name;
12+
13+
public static FolderMetaView of(Folder folder) {
14+
return FolderMetaView.builder()
15+
.id(folder.getId())
16+
.name(folder.getName())
17+
.build();
18+
}
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package org.lowcoder.api.meta.view;
2+
3+
import lombok.Getter;
4+
import lombok.experimental.SuperBuilder;
5+
import org.lowcoder.domain.group.model.Group;
6+
7+
import java.util.Locale;
8+
9+
@SuperBuilder
10+
@Getter
11+
public class GroupMetaView {
12+
private String id;
13+
private String name;
14+
15+
public static GroupMetaView of(Group group, Locale locale) {
16+
return GroupMetaView.builder()
17+
.id(group.getId())
18+
.name(group.getName(locale))
19+
.build();
20+
}
21+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.lowcoder.api.meta.view;
2+
3+
import lombok.Getter;
4+
import lombok.experimental.SuperBuilder;
5+
import org.lowcoder.domain.query.model.LibraryQuery;
6+
7+
@SuperBuilder
8+
@Getter
9+
public class LibraryQueryMetaView {
10+
private String id;
11+
private String name;
12+
13+
public static LibraryQueryMetaView of(LibraryQuery libraryQuery) {
14+
return LibraryQueryMetaView.builder()
15+
.id(libraryQuery.getId())
16+
.name(libraryQuery.getName())
17+
.build();
18+
}
19+
}

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/MetaView.java

+8-16
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,18 @@
22

33
import lombok.Builder;
44
import lombok.Getter;
5-
import org.lowcoder.domain.application.model.Application;
6-
import org.lowcoder.domain.bundle.model.Bundle;
7-
import org.lowcoder.domain.datasource.model.Datasource;
8-
import org.lowcoder.domain.folder.model.Folder;
9-
import org.lowcoder.domain.group.model.Group;
10-
import org.lowcoder.domain.organization.model.Organization;
11-
import org.lowcoder.domain.query.model.LibraryQuery;
12-
import org.lowcoder.domain.user.model.User;
135

146
import java.util.List;
157

168
@Builder
179
@Getter
1810
public class MetaView {
19-
private final List<Application> apps;
20-
private final List<User> users;
21-
private final List<Organization> orgs;
22-
private final List<Folder> folders;
23-
private final List<Datasource> datasources;
24-
private final List<Bundle> bundles;
25-
private final List<Group> groups;
26-
private final List<LibraryQuery> queries;
11+
private final List<ApplicationMetaView> apps;
12+
private final List<UserMetaView> users;
13+
private final List<OrgMetaView> orgs;
14+
private final List<FolderMetaView> folders;
15+
private final List<DatasourceMetaView> datasources;
16+
private final List<BundleMetaView> bundles;
17+
private final List<GroupMetaView> groups;
18+
private final List<LibraryQueryMetaView> queries;
2719
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.lowcoder.api.meta.view;
2+
3+
import lombok.Getter;
4+
import lombok.experimental.SuperBuilder;
5+
import org.lowcoder.domain.organization.model.Organization;
6+
7+
@SuperBuilder
8+
@Getter
9+
public class OrgMetaView {
10+
private String id;
11+
private String name;
12+
13+
public static OrgMetaView of(Organization user) {
14+
return OrgMetaView.builder()
15+
.id(user.getId())
16+
.name(user.getName())
17+
.build();
18+
}
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package org.lowcoder.api.meta.view;
2+
3+
import lombok.Getter;
4+
import lombok.experimental.SuperBuilder;
5+
import org.lowcoder.domain.user.model.User;
6+
7+
@SuperBuilder
8+
@Getter
9+
public class UserMetaView {
10+
private String id;
11+
private String name;
12+
private String email;
13+
14+
public static UserMetaView of(User user) {
15+
return UserMetaView.builder()
16+
.id(user.getId())
17+
.name(user.getName())
18+
.email(user.getEmail())
19+
.build();
20+
}
21+
}

0 commit comments

Comments
 (0)