You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
planka_custom/server/api/helpers/get-cards-for-board.js

44 lines
902 B
JavaScript

const LIMIT = 10;
module.exports = {
inputs: {
recordOrId: {
type: 'ref',
custom: (value) => _.isObjectLike(value) || _.isString(value) || _.every(value, _.isString),
required: true,
},
beforeId: {
type: 'string',
},
},
async fn(inputs, exits) {
const criteria = {};
let sort;
let limit;
if (_.isObjectLike(inputs.recordOrId)) {
criteria.boardId = inputs.recordOrId.id;
if (inputs.recordOrId.type === 'kanban') {
sort = 'position';
} else if (inputs.recordOrId.type === 'collection') {
if (inputs.beforeId) {
criteria.id = {
'<': inputs.beforeId,
};
}
limit = LIMIT;
}
} else {
criteria.boardId = inputs.recordOrId;
}
const cards = await sails.helpers.getCards(criteria, sort, limit);
return exits.success(cards);
},
};