Skip to content

Commit b6e1e2c

Browse files
author
FalkWolsky
committed
Added Comments to Marketplace Use
1 parent e379627 commit b6e1e2c

File tree

8 files changed

+53
-43
lines changed

8 files changed

+53
-43
lines changed

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

+5-4
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ public class Application extends HasIdAndAuditing {
4343
private Boolean publicToAll;
4444
@Setter
4545
private Boolean publicToMarketplace;
46-
4746
@Setter
4847
private Boolean agencyProfile;
4948

@@ -77,15 +76,17 @@ public class Application extends HasIdAndAuditing {
7776

7877
@Builder
7978
@JsonCreator
80-
public Application(@JsonProperty("orgId") String organizationId,
79+
public Application(
80+
@JsonProperty("orgId") String organizationId,
8181
@JsonProperty("name") String name,
8282
@JsonProperty("applicationType") Integer applicationType,
8383
@JsonProperty("applicationStatus") ApplicationStatus applicationStatus,
8484
@JsonProperty("publishedApplicationDSL") Map<String, Object> publishedApplicationDSL,
85+
@JsonProperty("editingApplicationDSL") Map<String, Object> editingApplicationDSL,
8586
@JsonProperty("publicToAll") Boolean publicToAll,
8687
@JsonProperty("publicToMarketplace") Boolean publicToMarketplace,
87-
@JsonProperty("agencyProfile") Boolean agencyProfile,
88-
@JsonProperty("editingApplicationDSL") Map<String, Object> editingApplicationDSL) {
88+
@JsonProperty("agencyProfile") Boolean agencyProfile
89+
) {
8990
this.organizationId = organizationId;
9091
this.name = name;
9192
this.applicationType = applicationType;

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/repository/ApplicationRepository.java

+3
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ public interface ApplicationRepository extends ReactiveMongoRepository<Applicati
3434

3535
Flux<Application> findByIdIn(List<String> ids);
3636

37+
38+
// Falk: Why to combine? Marketplace-List and Agency-List are different Endpoints
39+
3740
@Query(value = "{$and:[{'publicToAll':true},{'$or':[{'publicToMarketplace':?0},{'agencyProfile':?1}]}, {'_id': { $in: ?2}}]}", fields = "{_id : 1}")
3841
Flux<Application> findByPublicToAllIsTrueAndPublicToMarketplaceIsOrAgencyProfileIsAndIdIn
3942
(Boolean publicToMarketplace, Boolean agencyProfile, Collection<String> ids);

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

+10-4
Original file line numberDiff line numberDiff line change
@@ -152,13 +152,19 @@ public Mono<Boolean> setApplicationPublicToAll(String applicationId, boolean pub
152152
return mongoUpsertHelper.updateById(application, applicationId);
153153
}
154154

155-
public Mono<Boolean> setApplicationPublicToMarketplace(String applicationId, Boolean publicToMarketplace,
156-
String title, String category, String description, String image) {
155+
// Falk: String title, String category, String description, String image will be set in Application Settings inside DSL by Frontend
156+
public Mono<Boolean> setApplicationPublicToMarketplace(String applicationId, Boolean publicToMarketplace) {
157157

158158
return findById(applicationId)
159+
160+
// Falk: question - do we need Map<String, Object> applicationDsl = application.getEditingApplicationDSL(); and .editingApplicationDSL(applicationDsl) - or is .publicToMarketplace(publicToMarketplace).build(); enough?
161+
159162
.map(application -> {
163+
160164
Map<String, Object> applicationDsl = application.getEditingApplicationDSL();
161-
if (applicationDsl.containsKey("ui")) {
165+
166+
// Falk: this logic is not needed anymore, because we set Meta Data in Settings in the UI already
167+
/* if (applicationDsl.containsKey("ui")) {
162168
Map<String, Object> dataObject = (Map<String, Object>) applicationDsl.get("ui");
163169
164170
if(publicToMarketplace) {
@@ -178,7 +184,7 @@ public Mono<Boolean> setApplicationPublicToMarketplace(String applicationId, Boo
178184
179185
applicationDsl.replace("ui", dataObject);
180186
181-
}
187+
} */
182188

183189
return Application.builder()
184190
.publicToMarketplace(publicToMarketplace)

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java

+18-7
Original file line numberDiff line numberDiff line change
@@ -250,13 +250,20 @@ private Mono<Void> checkApplicationStatus(Application application, ApplicationSt
250250

251251
private Mono<Void> checkApplicationViewRequest(Application application, ApplicationEndpoints.ApplicationRequestType expected) {
252252
// TODO: The check is correct ( logically ) but we need to provide some time for the users to adapt. Will bring it back in the next release
253-
if (expected == ApplicationEndpoints.ApplicationRequestType.PUBLIC_TO_ALL /* && application.isPublicToAll() */) {
254-
return Mono.empty();
255-
}
256-
if (expected == ApplicationEndpoints.ApplicationRequestType.PUBLIC_TO_MARKETPLACE && application.isPublicToMarketplace()) {
253+
254+
// Falk: switched && application.isPublicToAll() on again - seems here is the bug.
255+
if (expected == ApplicationEndpoints.ApplicationRequestType.PUBLIC_TO_ALL && application.isPublicToAll()) {
257256
return Mono.empty();
258257
}
259-
if (expected == ApplicationEndpoints.ApplicationRequestType.AGENCY_PROFILE && application.agencyProfile()) {
258+
259+
// Falk: here is to check the ENV Variable LOWCODER_MARKETPLACE_PRIVATE_MODE
260+
// isPublicToMarketplace & isPublicToAll must be both true
261+
if (expected == ApplicationEndpoints.ApplicationRequestType.PUBLIC_TO_MARKETPLACE && application.isPublicToMarketplace() && application.isPublicToAll()) {
262+
return Mono.empty();
263+
}
264+
//
265+
// Falk: application.agencyProfile() & isPublicToAll must be both true
266+
if (expected == ApplicationEndpoints.ApplicationRequestType.AGENCY_PROFILE && application.agencyProfile() && application.isPublicToAll()) {
260267
return Mono.empty();
261268
}
262269
return Mono.error(new BizException(BizError.UNSUPPORTED_OPERATION, "BAD_REQUEST"));
@@ -445,6 +452,7 @@ public Mono<ApplicationPermissionView> getApplicationPermissions(String applicat
445452
.orgName(organization.getName())
446453
.publicToAll(application.isPublicToAll())
447454
.publicToMarketplace(application.isPublicToMarketplace())
455+
.agencyProfile(application.agencyProfile())
448456
.build();
449457
});
450458
});
@@ -502,6 +510,7 @@ private ApplicationInfoView buildView(Application application, String role, @Nul
502510
.folderId(folderId)
503511
.publicToAll(application.isPublicToAll())
504512
.publicToMarketplace(application.isPublicToMarketplace())
513+
.agencyProfile(application.agencyProfile())
505514
.build();
506515
}
507516

@@ -519,13 +528,15 @@ public Mono<Boolean> setApplicationPublicToMarketplace(String applicationId, App
519528
return checkCurrentUserApplicationPermission(applicationId, ResourceAction.SET_APPLICATIONS_PUBLIC_TO_MARKETPLACE)
520529
.then(checkApplicationStatus(applicationId, NORMAL))
521530
.then(applicationService.setApplicationPublicToMarketplace
522-
(applicationId, request.publicToMarketplace(), request.title(), request.category(), request.description(), request.image()));
531+
(applicationId, request.publicToMarketplace()));
523532
}
524533

534+
// Falk: why we have request.publicToMarketplace() - but here only agencyProfile? Not from request?
525535
public Mono<Boolean> setApplicationAsAgencyProfile(String applicationId, boolean agencyProfile) {
526536
return checkCurrentUserApplicationPermission(applicationId, ResourceAction.SET_APPLICATIONS_AS_AGENCY_PROFILE)
527537
.then(checkApplicationStatus(applicationId, NORMAL))
528-
.then(applicationService.setApplicationAsAgencyProfile(applicationId, agencyProfile));
538+
.then(applicationService.setApplicationAsAgencyProfile
539+
(applicationId, agencyProfile));
529540
}
530541

531542
private Map<String, Object> sanitizeDsl(Map<String, Object> applicationDsl) {

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java

+9-26
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
import org.lowcoder.api.application.view.ApplicationPermissionView;
1212
import org.lowcoder.api.application.view.ApplicationView;
1313
import org.lowcoder.api.application.view.MarketplaceApplicationInfoView;
14+
15+
//Falk: shouldn't be here ...?
16+
// import org.lowcoder.api.application.view.AgencyProfileApplicationView;
1417
import org.lowcoder.api.framework.view.ResponseView;
1518
import org.lowcoder.api.home.UserHomepageView;
1619
import org.lowcoder.domain.application.model.Application;
@@ -115,7 +118,7 @@ public interface ApplicationEndpoints
115118
tags = TAG_APPLICATION_MANAGEMENT,
116119
operationId = "getMarketplaceApplicationDataInViewMode",
117120
summary = "Get Marketplace Application data in view mode",
118-
description = "Retrieve the DSL data of a Lowcoder Application in view-mode by its ID for the marketplace."
121+
description = "Retrieve the DSL data of a Lowcoder Application in view-mode by its ID for the Marketplace."
119122
)
120123
@GetMapping("/{applicationId}/view_marketplace")
121124
public Mono<ResponseView<ApplicationView>> getPublishedMarketPlaceApplication(@PathVariable String applicationId);
@@ -124,7 +127,7 @@ public interface ApplicationEndpoints
124127
tags = TAG_APPLICATION_MANAGEMENT,
125128
operationId = "getAgencyProfileApplicationDataInViewMode",
126129
summary = "Get Agency profile Application data in view mode",
127-
description = "Retrieve the DSL data of a Lowcoder Application in view-mode by its ID marked as agency profile."
130+
description = "Retrieve the DSL data of a Lowcoder Application in view-mode by its ID marked as Agency Profile."
128131
)
129132
@GetMapping("/{applicationId}/view_agency")
130133
public Mono<ResponseView<ApplicationView>> getAgencyProfileApplication(@PathVariable String applicationId);
@@ -171,12 +174,13 @@ public Mono<ResponseView<List<ApplicationInfoView>>> getApplications(@RequestPar
171174
@Operation(
172175
tags = TAG_APPLICATION_MANAGEMENT,
173176
operationId = "listMarketplaceApplications",
174-
summary = "List marketplace Applications",
175-
description = "Retrieve a list of Lowcoder Applications that are published to the marketplace"
177+
summary = "List Marketplace Applications",
178+
description = "Retrieve a list of Lowcoder Applications that are published to the Marketplace"
176179
)
177180
@GetMapping("/marketplace-apps")
178181
public Mono<ResponseView<List<MarketplaceApplicationInfoView>>> getMarketplaceApplications(@RequestParam(required = false) Integer applicationType);
179182

183+
// Falk: why we use MarketplaceApplicationInfoView for AgencyProfile?
180184
@Operation(
181185
tags = TAG_APPLICATION_MANAGEMENT,
182186
operationId = "listAgencyProfileApplications",
@@ -270,33 +274,12 @@ public Boolean publicToAll() {
270274
}
271275
}
272276

273-
public record ApplicationPublicToMarketplaceRequest(Boolean publicToMarketplace, String title,
274-
String description, String category, String image) {
277+
public record ApplicationPublicToMarketplaceRequest(Boolean publicToMarketplace) {
275278
@Override
276279
public Boolean publicToMarketplace() {
277280
return BooleanUtils.isTrue(publicToMarketplace);
278281
}
279282

280-
@Override
281-
public String title() {
282-
return title;
283-
}
284-
285-
@Override
286-
public String description() {
287-
return description;
288-
}
289-
290-
@Override
291-
public String category() {
292-
return category;
293-
}
294-
295-
@Override
296-
public String image() {
297-
return image;
298-
}
299-
300283
}
301284

302285
public record ApplicationAsAgencyProfileRequest(Boolean agencyProfile) {

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ public class ApplicationInfoView {
3737
private final Instant lastModifyTime; // app's last update time
3838

3939
private final boolean publicToAll;
40-
4140
private final boolean publicToMarketplace;
41+
private final boolean agencyProfile;
4242

4343
public long getLastViewTime() {
4444
return lastViewTime == null ? 0 : lastViewTime.toEpochMilli();

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationPermissionView.java

+5
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public class ApplicationPermissionView extends CommonPermissionView {
99

1010
private boolean publicToAll;
1111
private boolean publicToMarketplace;
12+
private boolean agencyProfile;
1213

1314
public boolean isPublicToAll() {
1415
return publicToAll;
@@ -17,4 +18,8 @@ public boolean isPublicToAll() {
1718
public boolean isPublicToMarketplace() {
1819
return publicToMarketplace;
1920
}
21+
22+
public boolean isAgencyProfile() {
23+
return agencyProfile;
24+
}
2025
}

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,8 @@ private ApplicationInfoView buildView(Application application, ResourceRole maxR
399399
.lastModifyTime(application.getUpdatedAt())
400400
.lastViewTime(lastViewTime)
401401
.publicToAll(application.isPublicToAll())
402-
.publicToMarketplace(application.isPublicToMarketplace());
402+
.publicToMarketplace(application.isPublicToMarketplace())
403+
.agencyProfile(application.agencyProfile());
403404
if (withContainerSize) {
404405
return applicationInfoViewBuilder
405406
.containerSize(application.getLiveContainerSize())

0 commit comments

Comments
 (0)