Skip to content

Commit e0b7317

Browse files
committed
#923: Add title, description, category to the application list endpoint
1 parent 18e2917 commit e0b7317

File tree

4 files changed

+43
-6
lines changed

4 files changed

+43
-6
lines changed

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

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -180,17 +180,44 @@ public Map<String, Object> getEditingApplicationDSL() {
180180
}
181181

182182
public String getCategory() {
183-
if(editingApplicationDSL == null || editingApplicationDSL.get("settings") == null) return "";
184-
Object settingsObject = editingApplicationDSL.get("settings");
183+
var liveDSL = getLiveApplicationDsl();
184+
if(liveDSL == null || liveDSL.get("settings") == null) return "";
185+
Object settingsObject = liveDSL.get("settings");
185186
if (settingsObject instanceof Map) {
186187
@SuppressWarnings("unchecked")
187-
Map<String, Object> settings = (Map<String, Object>) editingApplicationDSL.get("settings");
188+
Map<String, Object> settings = (Map<String, Object>) liveDSL.get("settings");
188189
return (String) settings.get("category");
189190
} else {
190191
return "";
191192
}
192193
}
193194

195+
public String getTitle() {
196+
var liveDSL = getLiveApplicationDsl();
197+
if(liveDSL == null || liveDSL.get("settings") == null) return "";
198+
Object settingsObject = liveDSL.get("settings");
199+
if (settingsObject instanceof Map) {
200+
@SuppressWarnings("unchecked")
201+
Map<String, Object> settings = (Map<String, Object>) liveDSL.get("settings");
202+
return (String) settings.get("title");
203+
} else {
204+
return "";
205+
}
206+
}
207+
208+
public String getDescription() {
209+
var liveDSL = getLiveApplicationDsl();
210+
if(liveDSL == null || liveDSL.get("settings") == null) return "";
211+
Object settingsObject = liveDSL.get("settings");
212+
if (settingsObject instanceof Map) {
213+
@SuppressWarnings("unchecked")
214+
Map<String, Object> settings = (Map<String, Object>) liveDSL.get("settings");
215+
return (String) settings.get("description");
216+
} else {
217+
return "";
218+
}
219+
}
220+
194221
public Map<String, Object> getEditingApplicationDSLOrNull() {return editingApplicationDSL; }
195222

196223
public Object getLiveContainerSize() {

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@
1717
public interface ApplicationRepository extends ReactiveMongoRepository<Application, String>, CustomApplicationRepository {
1818

1919
// publishedApplicationDSL : 0 -> excludes publishedApplicationDSL from the return
20-
@Aggregation(pipeline = {"{ $match: { organizationId: ?0 } }", "{ $project: { 'editingApplicationDSL.settings.category': 1, _id: 1, gid: 1, organizationId: 1, name: 1, applicationType: 1, applicationStatus: 1, publicToAll: 1, publicToMarketplace: 1, agencyProfile: 1, editingUserId: 1, lastEditedAt: 1, createdAt: 1, updatedAt: 1, createdBy: 1, modifiedBy: 1, _class: 1}}"})
20+
@Aggregation(pipeline = {"{ $match: { organizationId: ?0 } }", "{ $project: { 'editingApplicationDSL.settings': 1, _id: 1, gid: 1, organizationId: 1, name: 1, applicationType: 1, applicationStatus: 1, publicToAll: 1, publicToMarketplace: 1, agencyProfile: 1, editingUserId: 1, lastEditedAt: 1, createdAt: 1, updatedAt: 1, createdBy: 1, modifiedBy: 1, _class: 1}}"})
2121
Flux<Application> findByOrganizationId(String organizationId);
2222

2323

2424
@Override
2525
@Nonnull
26-
@Aggregation(pipeline = {"{ $match: { _id: ?0 } }", "{ $project: { 'editingApplicationDSL.settings.category': 1, _id: 1, gid: 1, organizationId: 1, name: 1, applicationType: 1, applicationStatus: 1, publicToAll: 1, publicToMarketplace: 1, agencyProfile: 1, editingUserId: 1, lastEditedAt: 1, createdAt: 1, updatedAt: 1, createdBy: 1, modifiedBy: 1, _class: 1}}"})
26+
@Aggregation(pipeline = {"{ $match: { _id: ?0 } }", "{ $project: { 'editingApplicationDSL.settings': 1, _id: 1, gid: 1, organizationId: 1, name: 1, applicationType: 1, applicationStatus: 1, publicToAll: 1, publicToMarketplace: 1, agencyProfile: 1, editingUserId: 1, lastEditedAt: 1, createdAt: 1, updatedAt: 1, createdBy: 1, modifiedBy: 1, _class: 1}}"})
2727
Mono<Application> findById(@Nonnull String id);
2828

29-
@Aggregation(pipeline = {"{ $match: { gid: ?0 } }", "{ $project: { 'editingApplicationDSL.settings.category': 1, _id: 1, gid: 1, organizationId: 1, name: 1, applicationType: 1, applicationStatus: 1, publicToAll: 1, publicToMarketplace: 1, agencyProfile: 1, editingUserId: 1, lastEditedAt: 1, createdAt: 1, updatedAt: 1, createdBy: 1, modifiedBy: 1, _class: 1}}"})
29+
@Aggregation(pipeline = {"{ $match: { gid: ?0 } }", "{ $project: { 'editingApplicationDSL.settings': 1, _id: 1, gid: 1, organizationId: 1, name: 1, applicationType: 1, applicationStatus: 1, publicToAll: 1, publicToMarketplace: 1, agencyProfile: 1, editingUserId: 1, lastEditedAt: 1, createdAt: 1, updatedAt: 1, createdBy: 1, modifiedBy: 1, _class: 1}}"})
3030
Flux<Application> findByGid(@Nonnull String gid);
3131

3232
Mono<Long> countByOrganizationIdAndApplicationStatus(String organizationId, ApplicationStatus applicationStatus);

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,13 @@ public class ApplicationInfoView {
4141

4242
private final String editingUserId;
4343

44+
@JsonInclude(Include.NON_NULL)
45+
private final String title;
46+
@JsonInclude(Include.NON_NULL)
47+
private final String description;
48+
@JsonInclude(Include.NON_NULL)
49+
private final String category;
50+
4451
public long getLastViewTime() {
4552
return lastViewTime == null ? 0 : lastViewTime.toEpochMilli();
4653
}

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -568,6 +568,9 @@ private ApplicationInfoView buildView(Application application, ResourceRole maxR
568568
.applicationGid(application.getGid())
569569
.orgId(application.getOrganizationId())
570570
.name(application.getName())
571+
.title(application.getTitle())
572+
.description(application.getDescription())
573+
.category(application.getCategory())
571574
.createBy(Optional.ofNullable(userMap.get(application.getCreatedBy()))
572575
.map(User::getName)
573576
.orElse(""))

0 commit comments

Comments
 (0)