Code cleanup

This commit is contained in:
John R. Supplee 2021-03-07 02:12:31 +02:00
parent be970e4cea
commit 9061180983
6 changed files with 51 additions and 53 deletions

View file

@ -1,3 +1,14 @@
import Users from '../../models/users';
import Boards from '../../models/boards';
import Lists from '../../models/lists';
import Swimlanes from '../../models/swimlanes';
import CardComments from '../../models/cardComments';
import Attachments from '../../models/attachments';
import Checklists from '../../models/checklists';
import ChecklistItems from '../../models/checklistItems';
import SessionData from '../../models/usersessiondata';
import CustomFields from '../../models/customFields';
const escapeForRegex = require('escape-string-regexp');
Meteor.publish('card', cardId => {
@ -117,7 +128,7 @@ class QueryErrors {
return messages;
}
};
}
class Query {
params = {};
@ -139,7 +150,7 @@ class Query {
function buildSelector(queryParams) {
const userId = Meteor.userId();
errors = new QueryErrors();
const errors = new QueryErrors();
let selector = {};
@ -287,8 +298,10 @@ function buildSelector(queryParams) {
}
});
const queryMembers = [];
const queryAssignees = [];
const queryUsers = {
members: [],
assignees: [],
};
if (queryParams.users && queryParams.users.length) {
queryParams.users.forEach(query => {
const users = Users.find({
@ -296,8 +309,8 @@ function buildSelector(queryParams) {
});
if (users.count()) {
users.forEach(user => {
queryMembers.push(user._id);
queryAssignees.push(user._id);
queryUsers.members.push(user._id);
queryUsers.assignees.push(user._id);
});
} else {
errors.notFound.users.push(query);
@ -305,47 +318,34 @@ function buildSelector(queryParams) {
});
}
if (queryParams.members && queryParams.members.length) {
queryParams.members.forEach(query => {
const users = Users.find({
username: query,
});
if (users.count()) {
users.forEach(user => {
queryMembers.push(user._id);
['members', 'assignees'].forEach(key => {
if (queryParams[key] && queryParams[key].length) {
queryParams[key].forEach(query => {
const users = Users.find({
username: query,
});
} else {
errors.notFound.members.push(query);
}
});
}
if (queryParams.assignees && queryParams.assignees.length) {
queryParams.assignees.forEach(query => {
const users = Users.find({
username: query,
if (users.count()) {
users.forEach(user => {
queryUsers[key].push(user._id);
});
} else {
errors.notFound[key].push(query);
}
});
if (users.count()) {
users.forEach(user => {
queryAssignees.push(user._id);
});
} else {
errors.notFound.assignees.push(query);
}
});
}
}
});
if (queryMembers.length && queryAssignees.length) {
if (queryUsers.members.length && queryUsers.assignees.length) {
selector.$and.push({
$or: [
{ members: { $in: queryMembers } },
{ assignees: { $in: queryAssignees } },
{ members: { $in: queryUsers.members } },
{ assignees: { $in: queryUsers.assignees } },
],
});
} else if (queryMembers.length) {
selector.members = { $in: queryMembers };
} else if (queryAssignees.length) {
selector.assignees = { $in: queryAssignees };
} else if (queryUsers.members.length) {
selector.members = { $in: queryUsers.members };
} else if (queryUsers.assignees.length) {
selector.assignees = { $in: queryUsers.assignees };
}
if (queryParams.labels && queryParams.labels.length) {
@ -398,7 +398,7 @@ function buildSelector(queryParams) {
}
}
selector.labelIds = { $in: queryLabels };
selector.labelIds = { $in: _.uniq(queryLabels) };
});
}
@ -507,7 +507,6 @@ function buildSelector(queryParams) {
}
function buildProjection(query) {
let skip = 0;
if (query.params.skip) {
skip = query.params.skip;
@ -603,7 +602,6 @@ function buildQuery(queryParams) {
}
Meteor.publish('brokenCards', function(sessionId) {
const queryParams = {
users: [Meteor.user().username],
// limit: 25,
@ -649,7 +647,7 @@ function findCards(sessionId, query) {
// eslint-disable-next-line no-console
// console.log('projection:', projection);
let cards;
if (!errors || !errors.hasErrors()) {
if (!query.errors || !query.errors.hasErrors()) {
cards = Cards.find(query.selector, query.projection);
}
// eslint-disable-next-line no-console