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

Sort projects based on updatedAt and title. #320

Merged
merged 1 commit into from
Apr 26, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion src/models/Project.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,11 @@ const schema = new Schema({
owner: {type: String, required: true},
secretWebhookKey: {type: String, required: true},
copilot: {type: String, required: false},
registeredWebhookId: {type: String, required: false}
registeredWebhookId: {type: String, required: false},
updatedAt: {
type: Date,
default: Date.now,
}
});

module.exports = schema;
19 changes: 17 additions & 2 deletions src/services/ProjectService.js
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,7 @@ async function update(project, currentUser) {
dbProject[item[0]] = item[1];
return item;
});
dbProject.updatedAt = new Date();

return await dbHelper.update(models.Project, dbProject.id, dbProject);
}
Expand All @@ -225,7 +226,14 @@ async function getAll(query, currentUser) {
}
// if show all is checked user must be admin
if (query.showAll && await securityService.isAdminUser(currentUser.roles)) {
return await dbHelper.scan(models.Project, condition);
let projects = await dbHelper.scan(models.Project, condition);
projects = _.map(projects, (project) => {
if (!project.updatedAt) {
project.updatedAt = 0;
}
return project;
});
return _.orderBy(projects, ['updatedAt', 'title'], ['desc', 'asc']);
}

const filter = {
Expand All @@ -240,7 +248,14 @@ async function getAll(query, currentUser) {
},
};

return await dbHelper.scan(models.Project, filter);
let projects = await dbHelper.scan(models.Project, filter);
projects = _.map(projects, (project) => {
if (!project.updatedAt) {
project.updatedAt = 0;
}
return project;
});
return _.orderBy(projects, ['updatedAt', 'title'], ['desc', 'asc']);
}

getAll.schema = Joi.object().keys({
Expand Down