mirror of
https://github.com/plankanban/planka.git
synced 2025-12-23 17:25:16 +03:00
fix: Optimize query methods
This commit is contained in:
@@ -31,6 +31,14 @@ const makeWhereQueryBuilder = (Model) => (criteria) => {
|
|||||||
return ['id = $1', [criteria]];
|
return ['id = $1', [criteria]];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const makeRowToModelTransformer = (Model) => {
|
||||||
|
// eslint-disable-next-line no-underscore-dangle
|
||||||
|
const transformations = _.invert(Model._transformer._transformations);
|
||||||
|
|
||||||
|
return (row) => _.mapKeys(row, (_, key) => transformations[key]);
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
makeWhereQueryBuilder,
|
makeWhereQueryBuilder,
|
||||||
|
makeRowToModelTransformer,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -172,16 +172,7 @@ const delete_ = (criteria) =>
|
|||||||
query += `END END, updated_at = $${queryValues.length} WHERE id IN (${inValues.join(', ')}) AND references_total IS NOT NULL RETURNING *`;
|
query += `END END, updated_at = $${queryValues.length} WHERE id IN (${inValues.join(', ')}) AND references_total IS NOT NULL RETURNING *`;
|
||||||
|
|
||||||
const queryResult = await sails.sendNativeQuery(query, queryValues).usingConnection(db);
|
const queryResult = await sails.sendNativeQuery(query, queryValues).usingConnection(db);
|
||||||
|
uploadedFiles = queryResult.rows.map((row) => UploadedFile.qm.transformRowToModel(row));
|
||||||
uploadedFiles = queryResult.rows.map((row) => ({
|
|
||||||
id: row.id,
|
|
||||||
type: row.type,
|
|
||||||
mimeType: row.mime_type,
|
|
||||||
size: row.size,
|
|
||||||
referencesTotal: row.references_total,
|
|
||||||
createdAt: row.created_at,
|
|
||||||
updatedAt: row.updated_at,
|
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return { attachments, uploadedFiles };
|
return { attachments, uploadedFiles };
|
||||||
@@ -200,17 +191,7 @@ const deleteOne = (criteria) =>
|
|||||||
)
|
)
|
||||||
.usingConnection(db);
|
.usingConnection(db);
|
||||||
|
|
||||||
const [row] = queryResult.rows;
|
uploadedFile = UploadedFile.qm.transformRowToModel(queryResult.rows[0]);
|
||||||
|
|
||||||
uploadedFile = {
|
|
||||||
id: row.id,
|
|
||||||
type: row.type,
|
|
||||||
mimeType: row.mime_type,
|
|
||||||
size: row.size,
|
|
||||||
referencesTotal: row.references_total,
|
|
||||||
createdAt: row.created_at,
|
|
||||||
updatedAt: row.updated_at,
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return { attachment, uploadedFile };
|
return { attachment, uploadedFile };
|
||||||
|
|||||||
@@ -105,16 +105,7 @@ const delete_ = (criteria) =>
|
|||||||
query += `END END, updated_at = $${queryValues.length} WHERE id IN (${inValues.join(', ')}) AND references_total IS NOT NULL RETURNING *`;
|
query += `END END, updated_at = $${queryValues.length} WHERE id IN (${inValues.join(', ')}) AND references_total IS NOT NULL RETURNING *`;
|
||||||
|
|
||||||
const queryResult = await sails.sendNativeQuery(query, queryValues).usingConnection(db);
|
const queryResult = await sails.sendNativeQuery(query, queryValues).usingConnection(db);
|
||||||
|
uploadedFiles = queryResult.rows.map((row) => UploadedFile.qm.transformRowToModel(row));
|
||||||
uploadedFiles = queryResult.rows.map((row) => ({
|
|
||||||
id: row.id,
|
|
||||||
type: row.type,
|
|
||||||
mimeType: row.mime_type,
|
|
||||||
size: row.size,
|
|
||||||
referencesTotal: row.references_total,
|
|
||||||
createdAt: row.created_at,
|
|
||||||
updatedAt: row.updated_at,
|
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return { backgroundImages, uploadedFiles };
|
return { backgroundImages, uploadedFiles };
|
||||||
@@ -131,17 +122,7 @@ const deleteOne = (criteria) =>
|
|||||||
)
|
)
|
||||||
.usingConnection(db);
|
.usingConnection(db);
|
||||||
|
|
||||||
const [row] = queryResult.rows;
|
const uploadedFile = UploadedFile.qm.transformRowToModel(queryResult.rows[0]);
|
||||||
|
|
||||||
uploadedFile = {
|
|
||||||
id: row.id,
|
|
||||||
type: row.type,
|
|
||||||
mimeType: row.mime_type,
|
|
||||||
size: row.size,
|
|
||||||
referencesTotal: row.references_total,
|
|
||||||
createdAt: row.created_at,
|
|
||||||
updatedAt: row.updated_at,
|
|
||||||
};
|
|
||||||
|
|
||||||
return { backgroundImage, uploadedFile };
|
return { backgroundImage, uploadedFile };
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -4,102 +4,17 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
const buildSearchParts = require('../../../../utils/build-query-parts');
|
const buildSearchParts = require('../../../../utils/build-query-parts');
|
||||||
|
const { makeRowToModelTransformer } = require('../helpers');
|
||||||
|
|
||||||
const LIMIT = 50;
|
const LIMIT = 50;
|
||||||
|
|
||||||
|
const transformRowToModel = makeRowToModelTransformer(Card);
|
||||||
|
|
||||||
const defaultFind = (criteria, { sort = 'id', limit } = {}) =>
|
const defaultFind = (criteria, { sort = 'id', limit } = {}) =>
|
||||||
Card.find(criteria).sort(sort).limit(limit);
|
Card.find(criteria).sort(sort).limit(limit);
|
||||||
|
|
||||||
/* Query methods */
|
/* Query methods */
|
||||||
|
|
||||||
const getIdsByEndlessListId = async (listId, { before, search, userIds, labelIds } = {}) => {
|
|
||||||
if (userIds && userIds.length === 0) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (labelIds && labelIds.length === 0) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
const queryValues = [];
|
|
||||||
let query = 'SELECT DISTINCT card.id FROM card';
|
|
||||||
|
|
||||||
if (userIds) {
|
|
||||||
query += ' LEFT JOIN card_membership ON card.id = card_membership.card_id';
|
|
||||||
query += ' LEFT JOIN task_list ON card.id = task_list.card_id';
|
|
||||||
query += ' LEFT JOIN task ON task_list.id = task.task_list_id';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (labelIds) {
|
|
||||||
query += ' LEFT JOIN card_label ON card.id = card_label.card_id';
|
|
||||||
}
|
|
||||||
|
|
||||||
queryValues.push(listId);
|
|
||||||
query += ` WHERE card.list_id = $${queryValues.length}`;
|
|
||||||
|
|
||||||
if (before) {
|
|
||||||
queryValues.push(before.listChangedAt);
|
|
||||||
query += ` AND (card.list_changed_at < $${queryValues.length} OR (card.list_changed_at = $${queryValues.length}`;
|
|
||||||
|
|
||||||
queryValues.push(before.id);
|
|
||||||
query += ` AND card.id < $${queryValues.length}))`;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (search) {
|
|
||||||
if (search.startsWith('/')) {
|
|
||||||
queryValues.push(search.substring(1));
|
|
||||||
query += ` AND (card.name ~* $${queryValues.length} OR card.description ~* $${queryValues.length})`;
|
|
||||||
} else {
|
|
||||||
const searchParts = buildSearchParts(search);
|
|
||||||
|
|
||||||
if (searchParts.length > 0) {
|
|
||||||
const ilikeValues = searchParts.map((searchPart) => {
|
|
||||||
queryValues.push(searchPart);
|
|
||||||
return `'%' || $${queryValues.length} || '%'`;
|
|
||||||
});
|
|
||||||
|
|
||||||
query += ` AND ((card.name ILIKE ALL(ARRAY[${ilikeValues.join(', ')}])) OR (card.description ILIKE ALL(ARRAY[${ilikeValues.join(', ')}])))`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (userIds) {
|
|
||||||
const inValues = userIds.map((userId) => {
|
|
||||||
queryValues.push(userId);
|
|
||||||
return `$${queryValues.length}`;
|
|
||||||
});
|
|
||||||
|
|
||||||
query += ` AND (card_membership.user_id IN (${inValues.join(', ')}) OR task.assignee_user_id IN (${inValues.join(', ')}))`;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (labelIds) {
|
|
||||||
const inValues = labelIds.map((labelId) => {
|
|
||||||
queryValues.push(labelId);
|
|
||||||
return `$${queryValues.length}`;
|
|
||||||
});
|
|
||||||
|
|
||||||
query += ` AND card_label.label_id IN (${inValues.join(', ')})`;
|
|
||||||
}
|
|
||||||
|
|
||||||
query += ` LIMIT ${LIMIT}`;
|
|
||||||
|
|
||||||
let queryResult;
|
|
||||||
try {
|
|
||||||
queryResult = await sails.sendNativeQuery(query, queryValues);
|
|
||||||
} catch (error) {
|
|
||||||
if (
|
|
||||||
error.code === 'E_QUERY_FAILED' &&
|
|
||||||
error.message.includes('Query failed: invalid regular expression')
|
|
||||||
) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
throw error;
|
|
||||||
}
|
|
||||||
|
|
||||||
return sails.helpers.utils.mapRecords(queryResult.rows);
|
|
||||||
};
|
|
||||||
|
|
||||||
const createOne = (values) => Card.create({ ...values }).fetch();
|
const createOne = (values) => Card.create({ ...values }).fetch();
|
||||||
|
|
||||||
const getByIds = (ids) => defaultFind(ids);
|
const getByIds = (ids) => defaultFind(ids);
|
||||||
@@ -124,44 +39,120 @@ const getByListId = async (listId, { exceptIdOrIds, sort = ['position', 'id'] }
|
|||||||
};
|
};
|
||||||
|
|
||||||
const getByEndlessListId = async (listId, { before, search, userIds, labelIds }) => {
|
const getByEndlessListId = async (listId, { before, search, userIds, labelIds }) => {
|
||||||
const criteria = {};
|
|
||||||
|
|
||||||
const options = {
|
|
||||||
sort: ['listChangedAt DESC', 'id DESC'],
|
|
||||||
};
|
|
||||||
|
|
||||||
if (search || userIds || labelIds) {
|
if (search || userIds || labelIds) {
|
||||||
criteria.id = await getIdsByEndlessListId(listId, {
|
if (userIds && userIds.length === 0) {
|
||||||
before,
|
return [];
|
||||||
search,
|
|
||||||
userIds,
|
|
||||||
labelIds,
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
criteria.and = [{ listId }];
|
|
||||||
|
|
||||||
if (before) {
|
|
||||||
criteria.and.push({
|
|
||||||
or: [
|
|
||||||
{
|
|
||||||
listChangedAt: {
|
|
||||||
'<': before.listChangedAt,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
listChangedAt: before.listChangedAt,
|
|
||||||
id: {
|
|
||||||
'<': before.id,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
options.limit = LIMIT;
|
if (labelIds && labelIds.length === 0) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
const queryValues = [];
|
||||||
|
let query = 'SELECT DISTINCT card.* FROM card';
|
||||||
|
|
||||||
|
if (userIds) {
|
||||||
|
query += ' LEFT JOIN card_membership ON card.id = card_membership.card_id';
|
||||||
|
query += ' LEFT JOIN task_list ON card.id = task_list.card_id';
|
||||||
|
query += ' LEFT JOIN task ON task_list.id = task.task_list_id';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (labelIds) {
|
||||||
|
query += ' LEFT JOIN card_label ON card.id = card_label.card_id';
|
||||||
|
}
|
||||||
|
|
||||||
|
queryValues.push(listId);
|
||||||
|
query += ` WHERE card.list_id = $${queryValues.length}`;
|
||||||
|
|
||||||
|
if (before) {
|
||||||
|
queryValues.push(before.listChangedAt);
|
||||||
|
query += ` AND (card.list_changed_at < $${queryValues.length} OR (card.list_changed_at = $${queryValues.length}`;
|
||||||
|
|
||||||
|
queryValues.push(before.id);
|
||||||
|
query += ` AND card.id < $${queryValues.length}))`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (search) {
|
||||||
|
if (search.startsWith('/')) {
|
||||||
|
queryValues.push(search.substring(1));
|
||||||
|
query += ` AND (card.name ~* $${queryValues.length} OR card.description ~* $${queryValues.length})`;
|
||||||
|
} else {
|
||||||
|
const searchParts = buildSearchParts(search);
|
||||||
|
|
||||||
|
if (searchParts.length > 0) {
|
||||||
|
const ilikeValues = searchParts.map((searchPart) => {
|
||||||
|
queryValues.push(searchPart);
|
||||||
|
return `'%' || $${queryValues.length} || '%'`;
|
||||||
|
});
|
||||||
|
|
||||||
|
query += ` AND ((card.name ILIKE ALL(ARRAY[${ilikeValues.join(', ')}])) OR (card.description ILIKE ALL(ARRAY[${ilikeValues.join(', ')}])))`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (userIds) {
|
||||||
|
const inValues = userIds.map((userId) => {
|
||||||
|
queryValues.push(userId);
|
||||||
|
return `$${queryValues.length}`;
|
||||||
|
});
|
||||||
|
|
||||||
|
query += ` AND (card_membership.user_id IN (${inValues.join(', ')}) OR task.assignee_user_id IN (${inValues.join(', ')}))`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (labelIds) {
|
||||||
|
const inValues = labelIds.map((labelId) => {
|
||||||
|
queryValues.push(labelId);
|
||||||
|
return `$${queryValues.length}`;
|
||||||
|
});
|
||||||
|
|
||||||
|
query += ` AND card_label.label_id IN (${inValues.join(', ')})`;
|
||||||
|
}
|
||||||
|
|
||||||
|
query += ` LIMIT ${LIMIT}`;
|
||||||
|
|
||||||
|
let queryResult;
|
||||||
|
try {
|
||||||
|
queryResult = await sails.sendNativeQuery(query, queryValues);
|
||||||
|
} catch (error) {
|
||||||
|
if (
|
||||||
|
error.code === 'E_QUERY_FAILED' &&
|
||||||
|
error.message.includes('Query failed: invalid regular expression')
|
||||||
|
) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
|
||||||
|
return queryResult.rows.map((row) => transformRowToModel(row));
|
||||||
}
|
}
|
||||||
|
|
||||||
return defaultFind(criteria, options);
|
const criteria = {
|
||||||
|
and: [{ listId }],
|
||||||
|
};
|
||||||
|
|
||||||
|
if (before) {
|
||||||
|
criteria.and.push({
|
||||||
|
or: [
|
||||||
|
{
|
||||||
|
listChangedAt: {
|
||||||
|
'<': before.listChangedAt,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
listChangedAt: before.listChangedAt,
|
||||||
|
id: {
|
||||||
|
'<': before.id,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return defaultFind(criteria, {
|
||||||
|
sort: ['listChangedAt DESC', 'id DESC'],
|
||||||
|
limit: LIMIT,
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const getByListIds = async (listIds, { sort = ['position', 'id'] } = {}) =>
|
const getByListIds = async (listIds, { sort = ['position', 'id'] } = {}) =>
|
||||||
@@ -242,8 +233,6 @@ const delete_ = (criteria) => Card.destroy(criteria).fetch();
|
|||||||
const deleteOne = (criteria) => Card.destroyOne(criteria);
|
const deleteOne = (criteria) => Card.destroyOne(criteria);
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
getIdsByEndlessListId,
|
|
||||||
|
|
||||||
createOne,
|
createOne,
|
||||||
getByIds,
|
getByIds,
|
||||||
getByBoardId,
|
getByBoardId,
|
||||||
|
|||||||
@@ -3,6 +3,10 @@
|
|||||||
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
|
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
const { makeRowToModelTransformer } = require('../helpers');
|
||||||
|
|
||||||
|
const transformRowToModel = makeRowToModelTransformer(CustomFieldValue);
|
||||||
|
|
||||||
const defaultFind = (criteria, { customFieldGroupIdOrIds }) => {
|
const defaultFind = (criteria, { customFieldGroupIdOrIds }) => {
|
||||||
if (customFieldGroupIdOrIds) {
|
if (customFieldGroupIdOrIds) {
|
||||||
criteria.customFieldGroupId = customFieldGroupIdOrIds; // eslint-disable-line no-param-reassign
|
criteria.customFieldGroupId = customFieldGroupIdOrIds; // eslint-disable-line no-param-reassign
|
||||||
@@ -32,17 +36,7 @@ const createOrUpdateOne = async (values) => {
|
|||||||
new Date().toISOString(),
|
new Date().toISOString(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const [row] = queryResult.rows;
|
return transformRowToModel(queryResult.rows[0]);
|
||||||
|
|
||||||
return {
|
|
||||||
id: row.id,
|
|
||||||
cardId: row.card_id,
|
|
||||||
customFieldGroupId: row.custom_field_group_id,
|
|
||||||
customFieldId: row.custom_field_id,
|
|
||||||
content: row.content,
|
|
||||||
createdAt: row.created_at,
|
|
||||||
updatedAt: row.updated_at,
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const getByIds = (ids) => defaultFind(ids);
|
const getByIds = (ids) => defaultFind(ids);
|
||||||
|
|||||||
@@ -3,9 +3,10 @@
|
|||||||
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
|
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const { makeWhereQueryBuilder } = require('../helpers');
|
const { makeRowToModelTransformer, makeWhereQueryBuilder } = require('../helpers');
|
||||||
|
|
||||||
const buildWhereQuery = makeWhereQueryBuilder(List);
|
const buildWhereQuery = makeWhereQueryBuilder(List);
|
||||||
|
const transformRowToModel = makeRowToModelTransformer(List);
|
||||||
|
|
||||||
const defaultFind = (criteria, { sort = 'id' } = {}) => List.find(criteria).sort(sort);
|
const defaultFind = (criteria, { sort = 'id' } = {}) => List.find(criteria).sort(sort);
|
||||||
|
|
||||||
@@ -67,10 +68,7 @@ const updateOne = async (criteria, values) => {
|
|||||||
return { list: null };
|
return { list: null };
|
||||||
}
|
}
|
||||||
|
|
||||||
const prev = {
|
const prev = transformRowToModel(queryResult.rows[0]);
|
||||||
boardId: queryResult.rows[0].board_id,
|
|
||||||
type: queryResult.rows[0].type,
|
|
||||||
};
|
|
||||||
|
|
||||||
const list = await List.updateOne(criteria)
|
const list = await List.updateOne(criteria)
|
||||||
.set({ ...values })
|
.set({ ...values })
|
||||||
|
|||||||
@@ -3,12 +3,16 @@
|
|||||||
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
|
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
const { makeRowToModelTransformer } = require('../helpers');
|
||||||
|
|
||||||
const COLUMN_NAME_BY_TYPE = {
|
const COLUMN_NAME_BY_TYPE = {
|
||||||
[UploadedFile.Types.USER_AVATAR]: 'user_avatars',
|
[UploadedFile.Types.USER_AVATAR]: 'user_avatars',
|
||||||
[UploadedFile.Types.BACKGROUND_IMAGE]: 'background_images',
|
[UploadedFile.Types.BACKGROUND_IMAGE]: 'background_images',
|
||||||
[UploadedFile.Types.ATTACHMENT]: 'attachments',
|
[UploadedFile.Types.ATTACHMENT]: 'attachments',
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const transformRowToModel = makeRowToModelTransformer(UploadedFile);
|
||||||
|
|
||||||
/* Query methods */
|
/* Query methods */
|
||||||
|
|
||||||
const createOne = (values) =>
|
const createOne = (values) =>
|
||||||
@@ -47,4 +51,6 @@ const deleteOne = (criteria) =>
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
createOne,
|
createOne,
|
||||||
deleteOne,
|
deleteOne,
|
||||||
|
|
||||||
|
transformRowToModel,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
|
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const { makeWhereQueryBuilder } = require('../helpers');
|
const { makeRowToModelTransformer, makeWhereQueryBuilder } = require('../helpers');
|
||||||
|
|
||||||
const hasAvatarChanged = (avatar, prevAvatar) => {
|
const hasAvatarChanged = (avatar, prevAvatar) => {
|
||||||
if (!avatar && !prevAvatar) {
|
if (!avatar && !prevAvatar) {
|
||||||
@@ -18,6 +18,7 @@ const hasAvatarChanged = (avatar, prevAvatar) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const buildWhereQuery = makeWhereQueryBuilder(User);
|
const buildWhereQuery = makeWhereQueryBuilder(User);
|
||||||
|
const transformRowToModel = makeRowToModelTransformer(User);
|
||||||
|
|
||||||
const defaultFind = (criteria) => User.find(criteria).sort('id');
|
const defaultFind = (criteria) => User.find(criteria).sort('id');
|
||||||
|
|
||||||
@@ -117,9 +118,7 @@ const updateOne = async (criteria, values) => {
|
|||||||
return { user: null };
|
return { user: null };
|
||||||
}
|
}
|
||||||
|
|
||||||
prev = {
|
prev = transformRowToModel(queryResult.rows[0]);
|
||||||
avatar: queryResult.rows[0].avatar,
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const user = await User.updateOne(criteria)
|
const user = await User.updateOne(criteria)
|
||||||
@@ -136,17 +135,7 @@ const updateOne = async (criteria, values) => {
|
|||||||
)
|
)
|
||||||
.usingConnection(db);
|
.usingConnection(db);
|
||||||
|
|
||||||
const [row] = queryResult.rows;
|
uploadedFile = UploadedFile.qm.transformRowToModel(queryResult.rows[0]);
|
||||||
|
|
||||||
uploadedFile = {
|
|
||||||
id: row.id,
|
|
||||||
type: row.type,
|
|
||||||
mimeType: row.mime_type,
|
|
||||||
size: row.size,
|
|
||||||
referencesTotal: row.references_total,
|
|
||||||
createdAt: row.created_at,
|
|
||||||
updatedAt: row.updated_at,
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user.avatar) {
|
if (user.avatar) {
|
||||||
@@ -184,17 +173,7 @@ const deleteOne = (criteria) =>
|
|||||||
)
|
)
|
||||||
.usingConnection(db);
|
.usingConnection(db);
|
||||||
|
|
||||||
const [row] = queryResult.rows;
|
uploadedFile = UploadedFile.qm.transformRowToModel(queryResult.rows[0]);
|
||||||
|
|
||||||
uploadedFile = {
|
|
||||||
id: row.id,
|
|
||||||
type: row.type,
|
|
||||||
mimeType: row.mime_type,
|
|
||||||
size: row.size,
|
|
||||||
referencesTotal: row.references_total,
|
|
||||||
createdAt: row.created_at,
|
|
||||||
updatedAt: row.updated_at,
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return { user, uploadedFile };
|
return { user, uploadedFile };
|
||||||
|
|||||||
Reference in New Issue
Block a user