Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.

Commit 2c19745

Browse files
committed
Sort projects based on updatedAt and title.
1 parent e82fc6c commit 2c19745

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

src/models/Project.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,11 @@ const schema = new Schema({
3838
owner: {type: String, required: true},
3939
secretWebhookKey: {type: String, required: true},
4040
copilot: {type: String, required: false},
41-
registeredWebhookId: {type: String, required: false}
41+
registeredWebhookId: {type: String, required: false},
42+
updatedAt: {
43+
type: Date,
44+
default: Date.now,
45+
}
4246
});
4347

4448
module.exports = schema;

src/services/ProjectService.js

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,7 @@ async function update(project, currentUser) {
203203
dbProject[item[0]] = item[1];
204204
return item;
205205
});
206+
dbProject.updatedAt = new Date();
206207

207208
return await dbHelper.update(models.Project, dbProject.id, dbProject);
208209
}
@@ -225,7 +226,14 @@ async function getAll(query, currentUser) {
225226
}
226227
// if show all is checked user must be admin
227228
if (query.showAll && await securityService.isAdminUser(currentUser.roles)) {
228-
return await dbHelper.scan(models.Project, condition);
229+
let projects = await dbHelper.scan(models.Project, condition);
230+
projects = _.map(projects, (project) => {
231+
if (!project.updatedAt) {
232+
project.updatedAt = 0;
233+
}
234+
return project;
235+
});
236+
return _.orderBy(projects, ['updatedAt', 'title'], ['desc', 'asc']);
229237
}
230238

231239
const filter = {
@@ -240,7 +248,14 @@ async function getAll(query, currentUser) {
240248
},
241249
};
242250

243-
return await dbHelper.scan(models.Project, filter);
251+
let projects = await dbHelper.scan(models.Project, filter);
252+
projects = _.map(projects, (project) => {
253+
if (!project.updatedAt) {
254+
project.updatedAt = 0;
255+
}
256+
return project;
257+
});
258+
return _.orderBy(projects, ['updatedAt', 'title'], ['desc', 'asc']);
244259
}
245260

246261
getAll.schema = Joi.object().keys({

0 commit comments

Comments
 (0)