diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java index 84d0264e6..3e15e9aa9 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java @@ -47,6 +47,7 @@ public class Application extends HasIdAndAuditing { private Integer applicationType; private ApplicationStatus applicationStatus; + @Setter private Map editingApplicationDSL; @Setter diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/repository/BundleRepository.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/repository/BundleRepository.java index 70180fb06..9670cc525 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/repository/BundleRepository.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/repository/BundleRepository.java @@ -13,6 +13,7 @@ public interface BundleRepository extends ReactiveMongoRepository { Mono deleteAllByGid(Collection gids); Flux findByGid(@Nonnull String gid); + Flux findAllByGid(Collection gids); Flux findByCreatedBy(String userId); /** diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/service/BundleService.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/service/BundleService.java index 646d2eff1..5518d82fd 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/service/BundleService.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/service/BundleService.java @@ -16,6 +16,7 @@ public interface BundleService { Mono updateById(String id, Bundle resource); Mono findById(String id); + Flux findByIdIn(Collection ids); Mono findByIdWithoutDsl(String id); diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/service/BundleServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/service/BundleServiceImpl.java index 611f74d4c..48550aec3 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/service/BundleServiceImpl.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/service/BundleServiceImpl.java @@ -20,6 +20,7 @@ import java.util.Collection; import java.util.Map; +import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -56,6 +57,15 @@ public Mono findById(String id) { .switchIfEmpty(Mono.error(new BizException(BizError.NO_RESOURCE_FOUND, "BUNDLE_NOT_FOUND", id))); } + @Override + public Flux findByIdIn(Collection ids) { + Optional first = ids.stream().findFirst(); + if(first.isPresent() && FieldName.isGID(first.get())) + return repository.findAllByGid(ids); + + return repository.findAllById(ids); + } + @Override public Mono findByIdWithoutDsl(String id) { if (id == null) { diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/datasource/repository/DatasourceRepository.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/datasource/repository/DatasourceRepository.java index 71e6eca55..351e3be48 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/datasource/repository/DatasourceRepository.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/datasource/repository/DatasourceRepository.java @@ -62,6 +62,15 @@ public Mono findById(String datasourceId) { .flatMap(this::convertToDomainObjectAndDecrypt); } + public Flux findByIds(Collection datasourceIds) { + Optional first = datasourceIds.stream().findAny(); + if(first.isPresent() && FieldName.isGID(first.get())) + return repository.findAllByGidIn(datasourceIds) + .flatMap(this::convertToDomainObjectAndDecrypt); + return repository.findAllById(datasourceIds) + .flatMap(this::convertToDomainObjectAndDecrypt); + } + public Mono findWorkspacePredefinedDatasourceByOrgIdAndType(String organizationId, String type) { return repository.findByOrganizationIdAndTypeAndCreationSource(organizationId, type, DatasourceCreationSource.LEGACY_WORKSPACE_PREDEFINED.getValue()) diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/datasource/service/DatasourceService.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/datasource/service/DatasourceService.java index 8f25eab8e..ccb1e2219 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/datasource/service/DatasourceService.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/datasource/service/DatasourceService.java @@ -15,6 +15,7 @@ public interface DatasourceService { Mono update(String id, Datasource resource); Mono getById(String id); + Flux getByIds(Collection ids); Mono delete(String id); diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/datasource/service/impl/DatasourceServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/datasource/service/impl/DatasourceServiceImpl.java index cd488cd10..52914c4cd 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/datasource/service/impl/DatasourceServiceImpl.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/datasource/service/impl/DatasourceServiceImpl.java @@ -101,6 +101,32 @@ public Mono getById(String id) { return repository.findById(id); } + @Override + public Flux getByIds(Collection ids) { + Flux builtDatasourceFlux = Flux.fromStream(ids.stream().filter(id-> StringUtils.equals(id, Datasource.QUICK_REST_API_ID) + || StringUtils.equals(id, Datasource.QUICK_GRAPHQL_ID) + || StringUtils.equals(id, Datasource.LOWCODER_API_ID) + ).map(id-> { + if (StringUtils.equals(id, Datasource.QUICK_REST_API_ID)) { + return Datasource.QUICK_REST_API; + } + + if (StringUtils.equals(id, Datasource.QUICK_GRAPHQL_ID)) { + return Datasource.QUICK_GRAPHQL_API; + } + + if (StringUtils.equals(id, Datasource.LOWCODER_API_ID)) { + return Datasource.LOWCODER_API; + } + return Datasource.LOWCODER_API; + })); + + return Flux.concat(builtDatasourceFlux, repository.findByIds(ids.stream().filter(id-> !(StringUtils.equals(id, Datasource.QUICK_REST_API_ID) + || StringUtils.equals(id, Datasource.QUICK_GRAPHQL_ID) + || StringUtils.equals(id, Datasource.LOWCODER_API_ID)) + ).toList())); + } + private Mono validateDatasource(Datasource datasource) { if (datasource.getOrganizationId() == null) { diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/folder/repository/FolderRepository.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/folder/repository/FolderRepository.java index aa6734af7..9be68ed63 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/folder/repository/FolderRepository.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/folder/repository/FolderRepository.java @@ -14,5 +14,6 @@ public interface FolderRepository extends ReactiveMongoRepository findByOrganizationId(String organizationId); Flux findByGid(String organizationGid); + Flux findByGidIn(Collection ids); Mono deleteAllByGid(Collection gids); } diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/folder/service/FolderService.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/folder/service/FolderService.java index 1ac2d5e6f..1b17507c6 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/folder/service/FolderService.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/folder/service/FolderService.java @@ -11,6 +11,8 @@ public interface FolderService { Mono findById(String id); + Flux findByIds(Collection ids); + Mono create(Folder folder); Flux findByOrganizationId(String organizationId); diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/folder/service/FolderServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/folder/service/FolderServiceImpl.java index f297de101..27157f516 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/folder/service/FolderServiceImpl.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/folder/service/FolderServiceImpl.java @@ -1,5 +1,6 @@ package org.lowcoder.domain.folder.service; +import static org.lowcoder.domain.organization.model.OrganizationState.ACTIVE; import static org.lowcoder.sdk.exception.BizError.NO_RESOURCE_FOUND; import java.util.Collection; @@ -46,6 +47,13 @@ public Mono findById(String id) { .switchIfEmpty(Mono.error(new BizException(BizError.NO_RESOURCE_FOUND, "FOLDER_NOT_FOUND", id))); } + @Override + public Flux findByIds(Collection ids) { + if(!ids.isEmpty() && FieldName.isGID(ids.stream().findFirst().get())) + return repository.findByGidIn(ids); + return repository.findAllById(ids); + } + @Override public Mono create(Folder folder) { return repository.save(folder); diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/repository/LibraryQueryRepository.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/repository/LibraryQueryRepository.java index 41cdca0c5..17cb8fe71 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/repository/LibraryQueryRepository.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/repository/LibraryQueryRepository.java @@ -6,6 +6,8 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import java.util.Collection; + @Repository public interface LibraryQueryRepository extends ReactiveMongoRepository { @@ -14,4 +16,5 @@ public interface LibraryQueryRepository extends ReactiveMongoRepository findByName(String name); Mono deleteByGid(String gid); Flux findByGid(String gid); + Flux findByGidIn(Collection gids); } diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service/LibraryQueryService.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service/LibraryQueryService.java index 2f1193d9f..618377300 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service/LibraryQueryService.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service/LibraryQueryService.java @@ -5,10 +5,12 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import java.util.Collection; import java.util.Map; public interface LibraryQueryService { Mono getById(String libraryQueryId); + Flux getByIds(Collection libraryQueryIds); Mono getByName(String libraryQueryName); diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service/LibraryQueryServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service/LibraryQueryServiceImpl.java index 67595dd04..fbd175ecf 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service/LibraryQueryServiceImpl.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service/LibraryQueryServiceImpl.java @@ -13,7 +13,9 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import java.util.Collection; import java.util.Map; +import java.util.Optional; import static org.lowcoder.sdk.exception.BizError.LIBRARY_QUERY_NOT_FOUND; import static org.lowcoder.sdk.util.ExceptionUtils.deferredError; @@ -35,6 +37,14 @@ public Mono getById(String libraryQueryId) { .switchIfEmpty(deferredError(LIBRARY_QUERY_NOT_FOUND, "LIBRARY_QUERY_NOT_FOUND")); } + @Override + public Flux getByIds(Collection libraryQueryIds) { + Optional first = libraryQueryIds.stream().findFirst(); + if(first.isPresent() && FieldName.isGID(first.get())) + return libraryQueryRepository.findByGidIn(libraryQueryIds); + return libraryQueryRepository.findAllById(libraryQueryIds); + } + @Override public Mono getByName(String libraryQueryName) { return libraryQueryRepository.findByName(libraryQueryName) diff --git a/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/constant/NewUrl.java b/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/constant/NewUrl.java index ba5d39975..5f14ca234 100644 --- a/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/constant/NewUrl.java +++ b/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/constant/NewUrl.java @@ -37,4 +37,5 @@ private NewUrl() { public static final String NPM_REGISTRY = PREFIX + "/npm"; public static final String PLUGINS_URL = PREFIX + "/plugins"; + public static final String META_URL = PREFIX + "/meta"; } diff --git a/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/constant/Url.java b/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/constant/Url.java index 8ec972167..985f90ec7 100644 --- a/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/constant/Url.java +++ b/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/constant/Url.java @@ -17,5 +17,6 @@ public final class Url { public static final String APPLICATION_URL = BASE_URL + VERSION + "/applications"; public static final String QUERY_URL = BASE_URL + VERSION + "/query"; public static final String STATE_URL = BASE_URL + VERSION + "/state"; + public static final String META_URL = BASE_URL + VERSION + "/meta"; } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/MetaController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/MetaController.java new file mode 100644 index 000000000..90e63f0b0 --- /dev/null +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/MetaController.java @@ -0,0 +1,75 @@ +package org.lowcoder.api.meta; + +import lombok.RequiredArgsConstructor; +import org.lowcoder.api.application.ApplicationApiService; +import org.lowcoder.api.framework.view.ResponseView; +import org.lowcoder.api.meta.view.*; +import org.lowcoder.domain.application.model.Application; +import org.lowcoder.domain.application.service.ApplicationRecordService; +import org.lowcoder.domain.application.service.ApplicationServiceImpl; +import org.lowcoder.domain.bundle.model.Bundle; +import org.lowcoder.domain.bundle.service.BundleServiceImpl; +import org.lowcoder.domain.datasource.model.Datasource; +import org.lowcoder.domain.datasource.service.impl.DatasourceServiceImpl; +import org.lowcoder.domain.folder.model.Folder; +import org.lowcoder.domain.folder.service.FolderServiceImpl; +import org.lowcoder.domain.group.model.Group; +import org.lowcoder.domain.group.service.GroupServiceImpl; +import org.lowcoder.domain.organization.model.Organization; +import org.lowcoder.domain.organization.service.OrganizationServiceImpl; +import org.lowcoder.domain.query.model.LibraryQuery; +import org.lowcoder.domain.query.service.LibraryQueryServiceImpl; +import org.lowcoder.domain.user.model.User; +import org.lowcoder.domain.user.service.UserServiceImpl; +import org.lowcoder.sdk.util.LocaleUtils; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +@RequiredArgsConstructor +@RestController +public class MetaController implements MetaEndpoints { + private final ApplicationApiService applicationApiService; + private final ApplicationServiceImpl applicationServiceImpl; + private final UserServiceImpl userServiceImpl; + private final OrganizationServiceImpl organizationServiceImpl; + private final FolderServiceImpl folderServiceImpl; + private final DatasourceServiceImpl datasourceServiceImpl; + private final BundleServiceImpl bundleServiceImpl; + private final GroupServiceImpl groupServiceImpl; + private final LibraryQueryServiceImpl libraryQueryServiceImpl; + private final ApplicationRecordService applicationRecordService; + + @Override + public Mono> getMetaData(@RequestBody GetMetaDataRequest param) { + Flux appsFlux = applicationServiceImpl.findByIdIn(param.appIds()).flatMap(app -> ApplicationMetaView.of(app, applicationRecordService)); + Flux usersFlux = userServiceImpl.getByIds(param.userIds()).flatMapMany(map -> Flux.fromIterable(map.values())).map(UserMetaView::of); + Flux orgsFlux = organizationServiceImpl.getByIds(param.orgIds()).map(OrgMetaView::of); + Flux foldersFlux = folderServiceImpl.findByIds(param.folderIds()).map(FolderMetaView::of); + Flux datasourcesFlux = datasourceServiceImpl.getByIds(param.datasourceIds()).map(DatasourceMetaView::of); + Flux bundlesFlux = bundleServiceImpl.findByIdIn(param.bundleIds()).map(BundleMetaView::of); + Flux groupsFlux = Flux.deferContextual(contextView -> groupServiceImpl.getByIds(param.groupIds()).map(group -> GroupMetaView.of(group, LocaleUtils.getLocale(contextView)))); + Flux queriesFlux = libraryQueryServiceImpl.getByIds(param.libraryQueryIds()).map(LibraryQueryMetaView::of); + return Mono.zip( + appsFlux.collectList(), + usersFlux.collectList(), + orgsFlux.collectList(), + foldersFlux.collectList(), + datasourcesFlux.collectList(), + bundlesFlux.collectList(), + groupsFlux.collectList(), + queriesFlux.collectList() + ).map(tuple -> MetaView.builder() + .apps(tuple.getT1()) + .users(tuple.getT2()) + .orgs(tuple.getT3()) + .folders(tuple.getT4()) + .datasources(tuple.getT5()) + .bundles(tuple.getT6()) + .groups(tuple.getT7()) + .queries(tuple.getT8()) + .build()) + .map(ResponseView::success); + } +} diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/MetaEndpoints.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/MetaEndpoints.java new file mode 100644 index 000000000..ba6affa40 --- /dev/null +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/MetaEndpoints.java @@ -0,0 +1,36 @@ +package org.lowcoder.api.meta; + +import io.swagger.v3.oas.annotations.Operation; +import org.lowcoder.api.framework.view.ResponseView; +import org.lowcoder.api.meta.view.MetaView; +import org.lowcoder.infra.constant.NewUrl; +import org.lowcoder.infra.constant.Url; +import org.springframework.web.bind.annotation.*; +import reactor.core.publisher.Mono; + +import java.util.List; + +@RestController +@RequestMapping(value = {Url.META_URL, NewUrl.META_URL}) +public interface MetaEndpoints +{ + public static final String TAG_META_MANAGEMENT = "Meta APIs"; + + @Operation( + tags = TAG_META_MANAGEMENT, + operationId = "getMetaData", + summary = "Get metadata by ids", + description = "Get all metadatas by ids" + ) + @PostMapping("/") + public Mono> getMetaData(@RequestBody GetMetaDataRequest param); + + public record GetMetaDataRequest(List appIds, + List orgIds, + List userIds, + List groupIds, + List bundleIds, + List datasourceIds, + List folderIds, + List libraryQueryIds) {} +} diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/ApplicationMetaView.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/ApplicationMetaView.java new file mode 100644 index 000000000..55fed483d --- /dev/null +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/ApplicationMetaView.java @@ -0,0 +1,33 @@ +package org.lowcoder.api.meta.view; + +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import org.lowcoder.domain.application.model.Application; +import org.lowcoder.domain.application.service.ApplicationRecordService; +import reactor.core.publisher.Mono; + +@SuperBuilder +@Getter +public class ApplicationMetaView { + private String id; + private String name; + private String title; + private String description; + private String category; + private String icon; + + public static Mono of(Application app, ApplicationRecordService applicationRecordService) { + return Mono.zip(app.getTitle(applicationRecordService), + app.getDescription(applicationRecordService), + app.getCategory(applicationRecordService), + app.getIcon(applicationRecordService)).map(tuple -> + ApplicationMetaView.builder() + .id(app.getId()) + .name(app.getName()) + .title(tuple.getT1()) + .description(tuple.getT2()) + .category(tuple.getT3()) + .icon(tuple.getT4()) + .build()); + } +} diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/BundleMetaView.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/BundleMetaView.java new file mode 100644 index 000000000..41bc381db --- /dev/null +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/BundleMetaView.java @@ -0,0 +1,19 @@ +package org.lowcoder.api.meta.view; + +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import org.lowcoder.domain.bundle.model.Bundle; + +@SuperBuilder +@Getter +public class BundleMetaView { + private String id; + private String name; + + public static BundleMetaView of(Bundle bundle) { + return BundleMetaView.builder() + .id(bundle.getId()) + .name(bundle.getName()) + .build(); + } +} diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/DatasourceMetaView.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/DatasourceMetaView.java new file mode 100644 index 000000000..353da271a --- /dev/null +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/DatasourceMetaView.java @@ -0,0 +1,19 @@ +package org.lowcoder.api.meta.view; + +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import org.lowcoder.domain.datasource.model.Datasource; + +@SuperBuilder +@Getter +public class DatasourceMetaView { + private String id; + private String name; + + public static DatasourceMetaView of(Datasource datasource) { + return DatasourceMetaView.builder() + .id(datasource.getId()) + .name(datasource.getName()) + .build(); + } +} diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/FolderMetaView.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/FolderMetaView.java new file mode 100644 index 000000000..863634eaa --- /dev/null +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/FolderMetaView.java @@ -0,0 +1,19 @@ +package org.lowcoder.api.meta.view; + +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import org.lowcoder.domain.folder.model.Folder; + +@SuperBuilder +@Getter +public class FolderMetaView { + private String id; + private String name; + + public static FolderMetaView of(Folder folder) { + return FolderMetaView.builder() + .id(folder.getId()) + .name(folder.getName()) + .build(); + } +} diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/GroupMetaView.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/GroupMetaView.java new file mode 100644 index 000000000..37951e54b --- /dev/null +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/GroupMetaView.java @@ -0,0 +1,21 @@ +package org.lowcoder.api.meta.view; + +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import org.lowcoder.domain.group.model.Group; + +import java.util.Locale; + +@SuperBuilder +@Getter +public class GroupMetaView { + private String id; + private String name; + + public static GroupMetaView of(Group group, Locale locale) { + return GroupMetaView.builder() + .id(group.getId()) + .name(group.getName(locale)) + .build(); + } +} diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/LibraryQueryMetaView.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/LibraryQueryMetaView.java new file mode 100644 index 000000000..2b3a2b36f --- /dev/null +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/LibraryQueryMetaView.java @@ -0,0 +1,19 @@ +package org.lowcoder.api.meta.view; + +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import org.lowcoder.domain.query.model.LibraryQuery; + +@SuperBuilder +@Getter +public class LibraryQueryMetaView { + private String id; + private String name; + + public static LibraryQueryMetaView of(LibraryQuery libraryQuery) { + return LibraryQueryMetaView.builder() + .id(libraryQuery.getId()) + .name(libraryQuery.getName()) + .build(); + } +} diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/MetaView.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/MetaView.java new file mode 100644 index 000000000..cc21b5ed8 --- /dev/null +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/MetaView.java @@ -0,0 +1,19 @@ +package org.lowcoder.api.meta.view; + +import lombok.Builder; +import lombok.Getter; + +import java.util.List; + +@Builder +@Getter +public class MetaView { + private final List apps; + private final List users; + private final List orgs; + private final List folders; + private final List datasources; + private final List bundles; + private final List groups; + private final List queries; +} diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/OrgMetaView.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/OrgMetaView.java new file mode 100644 index 000000000..8842efea6 --- /dev/null +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/OrgMetaView.java @@ -0,0 +1,19 @@ +package org.lowcoder.api.meta.view; + +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import org.lowcoder.domain.organization.model.Organization; + +@SuperBuilder +@Getter +public class OrgMetaView { + private String id; + private String name; + + public static OrgMetaView of(Organization user) { + return OrgMetaView.builder() + .id(user.getId()) + .name(user.getName()) + .build(); + } +} diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/UserMetaView.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/UserMetaView.java new file mode 100644 index 000000000..d9d462cd0 --- /dev/null +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/meta/view/UserMetaView.java @@ -0,0 +1,21 @@ +package org.lowcoder.api.meta.view; + +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import org.lowcoder.domain.user.model.User; + +@SuperBuilder +@Getter +public class UserMetaView { + private String id; + private String name; + private String email; + + public static UserMetaView of(User user) { + return UserMetaView.builder() + .id(user.getId()) + .name(user.getName()) + .email(user.getEmail()) + .build(); + } +} pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy