fix(syncing-server): fetching items in raw mode

This commit is contained in:
Karol Sójko
2022-12-15 14:38:32 +01:00
parent 42926c663b
commit f27aa21eb5
3 changed files with 7 additions and 2 deletions
+1 -1
View File
@@ -52,7 +52,7 @@ const fixRevisionsOwnership = async (
)
}
const items = await itemRepository.findAll({
const items = await itemRepository.findAllRaw<{ uuid: string; userUuid: string }>({
createdBetween: [createdAfter, createdBefore],
selectString: 'item.uuid as uuid, item.user_uuid as userUuid',
contentType: [ContentType.Note, ContentType.File],
@@ -6,6 +6,7 @@ import { ExtendedIntegrityPayload } from './ExtendedIntegrityPayload'
export interface ItemRepositoryInterface {
deleteByUserUuid(userUuid: string): Promise<void>
findAll(query: ItemQuery): Promise<Item[]>
findAllRaw<T>(query: ItemQuery): Promise<T[]>
streamAll(query: ItemQuery): Promise<ReadStream>
countAll(query: ItemQuery): Promise<number>
findContentSizeForComputingTransferLimit(
@@ -103,6 +103,10 @@ export class MySQLItemRepository implements ItemRepositoryInterface {
return this.createFindAllQueryBuilder(query).getMany()
}
async findAllRaw<T>(query: ItemQuery): Promise<T[]> {
return this.createFindAllQueryBuilder(query).getRawMany<T>()
}
async streamAll(query: ItemQuery): Promise<ReadStream> {
return this.createFindAllQueryBuilder(query).stream()
}
@@ -160,7 +164,7 @@ export class MySQLItemRepository implements ItemRepositoryInterface {
})
}
if (query.createdBetween !== undefined) {
queryBuilder.andWhere('item.created_at BETWEEN :createdAfter AND :createdBefore', {
queryBuilder.andWhere('item.created_at >= :createdAfter AND item.created <= :createdBefore', {
createdAfter: query.createdBetween[0].toISOString(),
createdBefore: query.createdBetween[1].toISOString(),
})