Skip to content

Commit 730d794

Browse files
dragonpooludomikula
authored andcommitted
#923: Add title, description, category to the application list endpoint
1 parent e8dba1e commit 730d794

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
@@ -165,17 +165,44 @@ public Map<String, Object> getEditingApplicationDSL() {
165165
}
166166

167167
public String getCategory() {
168-
if(editingApplicationDSL == null || editingApplicationDSL.get("settings") == null) return "";
169-
Object settingsObject = editingApplicationDSL.get("settings");
168+
var liveDSL = getLiveApplicationDsl();
169+
if(liveDSL == null || liveDSL.get("settings") == null) return "";
170+
Object settingsObject = liveDSL.get("settings");
170171
if (settingsObject instanceof Map) {
171172
@SuppressWarnings("unchecked")
172-
Map<String, Object> settings = (Map<String, Object>) editingApplicationDSL.get("settings");
173+
Map<String, Object> settings = (Map<String, Object>) liveDSL.get("settings");
173174
return (String) settings.get("category");
174175
} else {
175176
return "";
176177
}
177178
}
178179

180+
public String getTitle() {
181+
var liveDSL = getLiveApplicationDsl();
182+
if(liveDSL == null || liveDSL.get("settings") == null) return "";
183+
Object settingsObject = liveDSL.get("settings");
184+
if (settingsObject instanceof Map) {
185+
@SuppressWarnings("unchecked")
186+
Map<String, Object> settings = (Map<String, Object>) liveDSL.get("settings");
187+
return (String) settings.get("title");
188+
} else {
189+
return "";
190+
}
191+
}
192+
193+
public String getDescription() {
194+
var liveDSL = getLiveApplicationDsl();
195+
if(liveDSL == null || liveDSL.get("settings") == null) return "";
196+
Object settingsObject = liveDSL.get("settings");
197+
if (settingsObject instanceof Map) {
198+
@SuppressWarnings("unchecked")
199+
Map<String, Object> settings = (Map<String, Object>) liveDSL.get("settings");
200+
return (String) settings.get("description");
201+
} else {
202+
return "";
203+
}
204+
}
205+
179206
public Map<String, Object> getEditingApplicationDSLOrNull() {return editingApplicationDSL; }
180207

181208
public Mono<Object> getLiveContainerSize(ApplicationRecordService applicationRecordService) {

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 Mono<ApplicationInfoView> buildView(Application application, ResourceRol
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)