1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-19 13:19:44 +02:00

feat: Version 2

Closes #627, closes #1047
This commit is contained in:
Maksim Eltyshev 2025-05-10 02:09:06 +02:00
parent ad7fb51cfa
commit 2ee1166747
1557 changed files with 76832 additions and 47042 deletions

View file

@ -0,0 +1,67 @@
/*!
* Copyright (c) 2024 PLANKA Software GmbH
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
const defaultFind = (criteria) => Project.find(criteria).sort('id');
/* Query methods */
const createOne = (values, { user } = {}) =>
sails.getDatastore().transaction(async (db) => {
let project = await Project.create({ ...values })
.fetch()
.usingConnection(db);
const projectManager = await ProjectManager.create({
projectId: project.id,
userId: user.id,
})
.fetch()
.usingConnection(db);
if (values.type === Project.Types.PRIVATE) {
project = await Project.updateOne(project.id)
.set({
ownerProjectManagerId: projectManager.id,
})
.usingConnection(db);
}
return { project, projectManager };
});
const getByIds = (ids) => defaultFind(ids);
const getShared = ({ exceptIdOrIds } = {}) => {
const criteria = {
ownerProjectManagerId: null,
};
if (exceptIdOrIds) {
criteria.id = {
'!=': exceptIdOrIds,
};
}
return defaultFind(criteria);
};
const getOneById = (id) => Project.findOne(id);
const updateOne = (criteria, values) => Project.updateOne(criteria).set({ ...values });
// eslint-disable-next-line no-underscore-dangle
const delete_ = (criteria) => Project.destroy(criteria).fetch();
const deleteOne = (criteria) => Project.destroyOne(criteria);
module.exports = {
createOne,
getByIds,
getShared,
getOneById,
updateOne,
deleteOne,
delete: delete_,
};