Skip to content

Commit 8b8eeac

Browse files
authored
Merge pull request #953 from th37rose/feature/bundle
Feature/bundle
2 parents 1493cf9 + 4a6f4c5 commit 8b8eeac

File tree

11 files changed

+575
-65
lines changed

11 files changed

+575
-65
lines changed

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import lombok.NoArgsConstructor;
77
import lombok.Setter;
88
import lombok.experimental.SuperBuilder;
9+
import org.apache.commons.lang3.BooleanUtils;
910
import org.lowcoder.sdk.models.HasIdAndAuditing;
1011
import org.springframework.data.mongodb.core.mapping.Document;
1112

@@ -32,4 +33,16 @@ public class Bundle extends HasIdAndAuditing {
3233

3334
private Map<String, Object> editingBundleDSL;
3435
private Map<String, Object> publishedBundleDSL;
36+
37+
public boolean isPublicToAll() {
38+
return BooleanUtils.toBooleanDefaultIfNull(publicToAll, false);
39+
}
40+
41+
public boolean isPublicToMarketplace() {
42+
return BooleanUtils.toBooleanDefaultIfNull(publicToMarketplace, false);
43+
}
44+
45+
public boolean agencyProfile() {
46+
return BooleanUtils.toBooleanDefaultIfNull(agencyProfile, false);
47+
}
3548
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,25 @@
99
import reactor.core.publisher.Mono;
1010

1111
import java.util.Collection;
12+
import java.util.Map;
1213
import java.util.Set;
1314

1415
public interface BundleService {
1516
Mono<Boolean> updateById(String id, Bundle resource);
1617

1718
Mono<Bundle> findById(String id);
1819

20+
Mono<Bundle> findByIdWithoutDsl(String id);
21+
1922
Mono<Bundle> create(Bundle bundle, String userId);
2023

2124
Flux<Bundle> findByUserId(String bundleId);
2225

2326
Mono<Void> deleteAllById(Collection<String> ids);
2427

2528
Mono<Boolean> exist(String id);
29+
Mono<Bundle> publish(String bundleId);
30+
Mono<Boolean> updatePublishedBundleDSL(String bundleId, Map<String, Object> bundleDSL);
2631

2732
@NonEmptyMono
2833
@SuppressWarnings("ReactiveStreamsNullableInLambdaInTransform")

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

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import lombok.RequiredArgsConstructor;
44
import org.apache.commons.lang3.StringUtils;
5-
import org.lowcoder.domain.application.model.Application;
6-
import org.lowcoder.domain.application.model.ApplicationRequestType;
75
import org.lowcoder.domain.bundle.model.Bundle;
86
import org.lowcoder.domain.bundle.model.BundleRequestType;
97
import org.lowcoder.domain.bundle.repository.BundleRepository;
@@ -54,6 +52,16 @@ public Mono<Bundle> findById(String id) {
5452
.switchIfEmpty(Mono.error(new BizException(BizError.NO_RESOURCE_FOUND, "BUNDLE_NOT_FOUND", id)));
5553
}
5654

55+
@Override
56+
public Mono<Bundle> findByIdWithoutDsl(String id) {
57+
if (id == null) {
58+
return Mono.error(new BizException(BizError.INVALID_PARAMETER, "INVALID_PARAMETER", FieldName.ID));
59+
}
60+
61+
return repository.findById(id)
62+
.switchIfEmpty(Mono.error(new BizException(BizError.NO_RESOURCE_FOUND, "CANT_FIND_BUNDLE", id)));
63+
}
64+
5765
@Override
5866
public Mono<Bundle> create(Bundle newbundle, String visitorId) {
5967
return repository.save(newbundle)
@@ -82,10 +90,24 @@ public Mono<Boolean> exist(String id) {
8290
});
8391
}
8492

93+
@Override
94+
public Mono<Bundle> publish(String bundleId) {
95+
return findById(bundleId)
96+
.flatMap(newBundle -> { // copy editingApplicationDSL to publishedApplicationDSL
97+
Map<String, Object> editingBundleDSL = newBundle.getEditingBundleDSL();
98+
return updatePublishedBundleDSL(bundleId, editingBundleDSL)
99+
.thenReturn(newBundle);
100+
});
101+
}
102+
103+
@Override
104+
public Mono<Boolean> updatePublishedBundleDSL(String bundleId, Map<String, Object> bundleDSL) {
105+
Bundle bundle = Bundle.builder().publishedBundleDSL(bundleDSL).build();
106+
return mongoUpsertHelper.updateById(bundle, bundleId);
107+
}
85108

86109
@Override
87110
@NonEmptyMono
88-
@SuppressWarnings("ReactiveStreamsNullableInLambdaInTransform")
89111
public Mono<Set<String>> getFilteredPublicBundleIds(BundleRequestType requestType, Collection<String> bundleIds, String userId, Boolean isPrivateMarketplace) {
90112
boolean isAnonymous = StringUtils.isBlank(userId);
91113
switch(requestType)
@@ -149,7 +171,7 @@ public Mono<Set<String>> getPrivateBundleIds(Collection<String> bundleIds, Strin
149171
@SuppressWarnings("ReactiveStreamsNullableInLambdaInTransform")
150172
public Mono<Set<String>> getPublicMarketplaceBundleIds(Collection<String> bundleIds, boolean isAnonymous, boolean isPrivateMarketplace) {
151173

152-
if ((isAnonymous && !isPrivateMarketplace) || !isAnonymous)
174+
if (!isAnonymous || !isPrivateMarketplace)
153175
{
154176
return repository.findByPublicToAllIsTrueAndPublicToMarketplaceIsTrueAndIdIn(bundleIds)
155177
.map(HasIdAndAuditing::getId)

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/permission/service/ResourcePermissionService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ Mono<Map<String, Collection<ResourcePermission>>> getByResourceTypeAndResourceId
2323

2424
@NonEmptyMono
2525
Mono<List<ResourcePermission>> getByApplicationId(String applicationId);
26+
@NonEmptyMono
27+
Mono<List<ResourcePermission>> getByBundleId(String bundleId);
2628

2729
@NonEmptyMono
2830
Mono<List<ResourcePermission>> getByDataSourceId(String dataSourceId);

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/permission/service/ResourcePermissionServiceImpl.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,12 @@ public Mono<List<ResourcePermission>> getByApplicationId(String applicationId) {
5757
return getByResourceTypeAndResourceId(ResourceType.APPLICATION, applicationId);
5858
}
5959

60+
@Override
61+
@NonEmptyMono
62+
public Mono<List<ResourcePermission>> getByBundleId(String bundleId) {
63+
return getByResourceTypeAndResourceId(ResourceType.BUNDLE, bundleId);
64+
}
65+
6066
@Override
6167
@NonEmptyMono
6268
public Mono<List<ResourcePermission>> getByDataSourceId(String dataSourceId) {

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,18 @@ public interface BundleApiService {
2323

2424
Mono<Void> checkBundleCurrentUser(Bundle bundle, String currentOrgId);
2525
Mono<BundleInfoView> getPublishedBundle(String bundleId, BundleRequestType requestType);
26+
Mono<BundleInfoView> getEditingBundle(String bundleId);
2627

2728
Mono<Bundle> delete(@Nonnull String bundleId);
2829

2930
Mono<Boolean> recycle(String bundleId);
3031

3132
Mono<Boolean> restore(String bundleId);
3233
Flux<BundleInfoView> getRecycledBundles();
34+
Mono<BundlePermissionView> getBundlePermissions(String bundleId);
3335

3436
Mono<BundleInfoView> update(Bundle bundle);
37+
Mono<BundleInfoView> publish(String bundleId);
3538

3639
Mono<Void> moveApp(String applicationId, String fromBundled, String toBundleId);
3740

@@ -41,12 +44,14 @@ public interface BundleApiService {
4144

4245
@Nonnull
4346
Mono<ResourcePermission> checkBundlePermissionWithReadableErrorMsg(String bundleId, ResourceAction action, BundleRequestType requestType);
47+
@Nonnull
48+
Mono<ResourcePermission> checkPermissionWithReadableErrorMsg(String bundleId, ResourceAction action);
4449

45-
Mono<Void> grantPermission(String bundleId, Set<String> userIds, Set<String> groupIds, ResourceRole role);
50+
Mono<Boolean> grantPermission(String bundleId, Set<String> userIds, Set<String> groupIds, ResourceRole role);
4651

47-
Mono<Void> updatePermission(String bundleId, String permissionId, ResourceRole role);
52+
Mono<Boolean> updatePermission(String bundleId, String permissionId, ResourceRole role);
4853

49-
Mono<Void> removePermission(String bundleId, String permissionId);
54+
Mono<Boolean> removePermission(String bundleId, String permissionId);
5055

5156
Mono<BundlePermissionView> getPermissions(String bundleId);
5257

0 commit comments

Comments
 (0)