From ce53c459e6ad0d469fcd0ebd7bf4caeb0e1d9c9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Thu, 15 Dec 2022 07:28:43 +0100 Subject: [PATCH] fix(syncing-server): select fields in query for revisions --- packages/syncing-server/bin/revisions.ts | 8 +++++--- packages/syncing-server/src/Domain/Item/ItemQuery.ts | 2 +- .../syncing-server/src/Infra/MySQL/MySQLItemRepository.ts | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/syncing-server/bin/revisions.ts b/packages/syncing-server/bin/revisions.ts index 2c7251703..3482307e8 100644 --- a/packages/syncing-server/bin/revisions.ts +++ b/packages/syncing-server/bin/revisions.ts @@ -27,7 +27,7 @@ const fixRevisionsOwnership = async ( const itemsCount = await itemRepository.countAll({ createdBetween: [createdAfter, createdBefore], - selectString: 'item.uuid AS uuid, item.user_uuid AS userUuid', + selectFields: ['uuid', 'userUuid'], contentType: [ContentType.Note, ContentType.File], sortOrder: 'ASC', sortBy: 'uuid', @@ -39,16 +39,17 @@ const fixRevisionsOwnership = async ( const amountOfPages = Math.ceil(itemsCount / limit) const tenPercentOfPages = Math.ceil(amountOfPages / 10) let itemsProcessedCounter = 0 + let itemsSkippedCounter = 0 for (let page = 1; page <= amountOfPages; page++) { if (page % tenPercentOfPages === 0) { logger.info( - `Processing page ${page} of ${amountOfPages} items between ${createdAfter.toISOString()} and ${createdBefore.toISOString()}. Processed successfully ${itemsProcessedCounter} items.`, + `Processing page ${page} of ${amountOfPages} items between ${createdAfter.toISOString()} and ${createdBefore.toISOString()}. Processed successfully ${itemsProcessedCounter} items. Skipped ${itemsSkippedCounter} items.`, ) } const items = await itemRepository.findAll({ createdBetween: [createdAfter, createdBefore], - selectString: 'item.uuid AS uuid, item.user_uuid AS userUuid', + selectFields: ['uuid', 'userUuid'], contentType: [ContentType.Note, ContentType.File], offset: (page - 1) * limit, limit, @@ -58,6 +59,7 @@ const fixRevisionsOwnership = async ( for (const item of items) { if (!item.userUuid || !item.uuid) { + itemsSkippedCounter++ continue } diff --git a/packages/syncing-server/src/Domain/Item/ItemQuery.ts b/packages/syncing-server/src/Domain/Item/ItemQuery.ts index c45c8bb6b..7ccfcf0f4 100644 --- a/packages/syncing-server/src/Domain/Item/ItemQuery.ts +++ b/packages/syncing-server/src/Domain/Item/ItemQuery.ts @@ -10,5 +10,5 @@ export type ItemQuery = { offset?: number limit?: number createdBetween?: Date[] - selectString?: string + selectFields?: string[] } diff --git a/packages/syncing-server/src/Infra/MySQL/MySQLItemRepository.ts b/packages/syncing-server/src/Infra/MySQL/MySQLItemRepository.ts index 218bdbc43..23ee2ba1b 100644 --- a/packages/syncing-server/src/Infra/MySQL/MySQLItemRepository.ts +++ b/packages/syncing-server/src/Infra/MySQL/MySQLItemRepository.ts @@ -135,8 +135,8 @@ export class MySQLItemRepository implements ItemRepositoryInterface { queryBuilder.orderBy(`item.${query.sortBy}`, query.sortOrder) } - if (query.selectString !== undefined) { - queryBuilder.select(query.selectString) + if (query.selectFields !== undefined) { + queryBuilder.select(query.selectFields) } if (query.userUuid !== undefined) { queryBuilder.where('item.user_uuid = :userUuid', { userUuid: query.userUuid })