From d3b5070407dd37f250f21330477df8e1b130a339 Mon Sep 17 00:00:00 2001 From: yassinedorbozgithub Date: Fri, 6 Dec 2024 16:26:54 +0100 Subject: [PATCH 1/9] fix: add retro compatibility for find and findAndPopulate methods --- .../chat/controllers/message.controller.ts | 2 +- api/src/utils/generics/base-repository.ts | 27 ++++++++++++------- api/src/utils/generics/base-service.ts | 6 +++-- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/api/src/chat/controllers/message.controller.ts b/api/src/chat/controllers/message.controller.ts index bddaf5a4..8bfc633c 100644 --- a/api/src/chat/controllers/message.controller.ts +++ b/api/src/chat/controllers/message.controller.ts @@ -55,7 +55,7 @@ import { SubscriberService } from '../services/subscriber.service'; @UseInterceptors(CsrfInterceptor) @Controller('message') export class MessageController extends BaseController< - Message, + AnyMessage, MessageStub, MessagePopulate, MessageFull diff --git a/api/src/utils/generics/base-repository.ts b/api/src/utils/generics/base-repository.ts index e2bc6f68..8aed82e5 100644 --- a/api/src/utils/generics/base-repository.ts +++ b/api/src/utils/generics/base-repository.ts @@ -257,20 +257,28 @@ export abstract class BaseRepository< protected findQuery( filter: TFilterQuery, - pageQuery?: PageQueryDto, + // TODO: QuerySortDto type need to be removed + pageQuery?: QuerySortDto | PageQueryDto, projection?: ProjectionType, ) { - const { skip = 0, limit, sort = ['createdAt', 'asc'] } = pageQuery || {}; - const query = this.model.find(filter, projection); - return query - .skip(skip) - .limit(limit) - .sort([sort] as [string, SortOrder][]); + // TODO: current block need to be removed + if (Array.isArray(pageQuery)) { + const query = this.model.find(filter, projection); + return query.sort([pageQuery] as [string, SortOrder][]); + } else { + const { skip = 0, limit, sort = ['createdAt', 'asc'] } = pageQuery || {}; + const query = this.model.find(filter, projection); + return query + .skip(skip) + .limit(limit) + .sort([sort] as [string, SortOrder][]); + } } async find( filter: TFilterQuery, - pageQuery?: PageQueryDto, + // TODO: QuerySortDto type need to be removed + pageQuery?: QuerySortDto | PageQueryDto, projection?: ProjectionType, ) { const query = this.findQuery(filter, pageQuery, projection); @@ -285,7 +293,8 @@ export abstract class BaseRepository< async findAndPopulate( filters: TFilterQuery, - pageQuery?: PageQueryDto, + // TODO: QuerySortDto need to be removed + pageQuery?: QuerySortDto | PageQueryDto, projection?: ProjectionType, ) { this.ensureCanPopulate(); diff --git a/api/src/utils/generics/base-service.ts b/api/src/utils/generics/base-service.ts index fede7015..4a27e857 100644 --- a/api/src/utils/generics/base-service.ts +++ b/api/src/utils/generics/base-service.ts @@ -46,7 +46,8 @@ export abstract class BaseService< async find( filter: TFilterQuery, - pageQuery?: PageQueryDto, + // TODO: QuerySortDto type need to be removed + pageQuery?: QuerySortDto | PageQueryDto, projection?: ProjectionType, ): Promise { return await this.repository.find(filter, pageQuery, projection); @@ -54,7 +55,8 @@ export abstract class BaseService< async findAndPopulate( filters: TFilterQuery, - pageQuery?: PageQueryDto, + // TODO: QuerySortDto type need to be removed + pageQuery?: QuerySortDto | PageQueryDto, projection?: ProjectionType, ) { return await this.repository.findAndPopulate( From d912042f882ac73caadbd34c66d283f40761de09 Mon Sep 17 00:00:00 2001 From: yassinedorbozgithub Date: Fri, 6 Dec 2024 17:43:56 +0100 Subject: [PATCH 2/9] fix: use overloading to marke deprecated methods signatures --- api/src/utils/generics/base-repository.ts | 36 ++++++++++++++++--- api/src/utils/generics/base-service.ts | 44 +++++++++++++++++++++-- 2 files changed, 73 insertions(+), 7 deletions(-) diff --git a/api/src/utils/generics/base-repository.ts b/api/src/utils/generics/base-repository.ts index 8aed82e5..717c3f78 100644 --- a/api/src/utils/generics/base-repository.ts +++ b/api/src/utils/generics/base-repository.ts @@ -275,12 +275,26 @@ export abstract class BaseRepository< } } + /** + * @deprecated + */ + async find( + filter: TFilterQuery, + pageQuery?: QuerySortDto, + projection?: ProjectionType, + ): Promise; + async find( filter: TFilterQuery, - // TODO: QuerySortDto type need to be removed pageQuery?: QuerySortDto | PageQueryDto, projection?: ProjectionType, - ) { + ): Promise; + + async find( + filter: TFilterQuery, + pageQuery?: QuerySortDto | PageQueryDto, + projection?: ProjectionType, + ): Promise { const query = this.findQuery(filter, pageQuery, projection); return await this.execute(query, this.cls); } @@ -291,12 +305,26 @@ export abstract class BaseRepository< } } + /** + * @deprecated + */ + async findAndPopulate( + filters: TFilterQuery, + pageQuery?: QuerySortDto, + projection?: ProjectionType, + ): Promise; + + async findAndPopulate( + filters: TFilterQuery, + pageQuery?: PageQueryDto, + projection?: ProjectionType, + ): Promise; + async findAndPopulate( filters: TFilterQuery, - // TODO: QuerySortDto need to be removed pageQuery?: QuerySortDto | PageQueryDto, projection?: ProjectionType, - ) { + ): Promise { this.ensureCanPopulate(); const query = this.findQuery(filters, pageQuery, projection).populate( this.populate, diff --git a/api/src/utils/generics/base-service.ts b/api/src/utils/generics/base-service.ts index 4a27e857..9686eb76 100644 --- a/api/src/utils/generics/base-service.ts +++ b/api/src/utils/generics/base-service.ts @@ -44,21 +44,59 @@ export abstract class BaseService< return await this.repository.findOneAndPopulate(criteria, projection); } + /** + * @deprecated + */ + async find( + filter: TFilterQuery, + pageQuery?: QuerySortDto, + projection?: ProjectionType, + ): Promise; + + async find( + filter: TFilterQuery, + pageQuery?: PageQueryDto, + projection?: ProjectionType, + ): Promise; + async find( filter: TFilterQuery, - // TODO: QuerySortDto type need to be removed pageQuery?: QuerySortDto | PageQueryDto, projection?: ProjectionType, ): Promise { + if (Array.isArray(pageQuery)) + return await this.repository.find(filter, pageQuery, projection); + return await this.repository.find(filter, pageQuery, projection); } + /** + * @deprecated + */ + async findAndPopulate( + filters: TFilterQuery, + pageQuery?: QuerySortDto, + projection?: ProjectionType, + ): Promise; + + async findAndPopulate( + filters: TFilterQuery, + pageQuery?: PageQueryDto, + projection?: ProjectionType, + ): Promise; + async findAndPopulate( filters: TFilterQuery, - // TODO: QuerySortDto type need to be removed pageQuery?: QuerySortDto | PageQueryDto, projection?: ProjectionType, - ) { + ): Promise { + if (Array.isArray(pageQuery)) + return await this.repository.findAndPopulate( + filters, + pageQuery, + projection, + ); + return await this.repository.findAndPopulate( filters, pageQuery, From fb20456367ced455b274147da2c28210ea4664eb Mon Sep 17 00:00:00 2001 From: yassinedorbozgithub Date: Fri, 6 Dec 2024 17:50:14 +0100 Subject: [PATCH 3/9] fix: use overloading to marke deprecated methods signatures v0.0.1 --- api/src/utils/generics/base-repository.ts | 39 +++++++++++++++++++---- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/api/src/utils/generics/base-repository.ts b/api/src/utils/generics/base-repository.ts index 717c3f78..c13a57be 100644 --- a/api/src/utils/generics/base-repository.ts +++ b/api/src/utils/generics/base-repository.ts @@ -255,13 +255,26 @@ export abstract class BaseRepository< return await this.executeOne(query, this.clsPopulate); } + /** + * @deprecated + */ + protected findQuery( + filter: TFilterQuery, + pageQuery?: QuerySortDto, + projection?: ProjectionType, + ); + + protected findQuery( + filter: TFilterQuery, + pageQuery?: PageQueryDto, + projection?: ProjectionType, + ); + protected findQuery( filter: TFilterQuery, - // TODO: QuerySortDto type need to be removed pageQuery?: QuerySortDto | PageQueryDto, projection?: ProjectionType, ) { - // TODO: current block need to be removed if (Array.isArray(pageQuery)) { const query = this.model.find(filter, projection); return query.sort([pageQuery] as [string, SortOrder][]); @@ -286,7 +299,7 @@ export abstract class BaseRepository< async find( filter: TFilterQuery, - pageQuery?: QuerySortDto | PageQueryDto, + pageQuery?: PageQueryDto, projection?: ProjectionType, ): Promise; @@ -295,6 +308,11 @@ export abstract class BaseRepository< pageQuery?: QuerySortDto | PageQueryDto, projection?: ProjectionType, ): Promise { + if (Array.isArray(pageQuery)) { + const query = this.findQuery(filter, pageQuery, projection); + return await this.execute(query, this.cls); + } + const query = this.findQuery(filter, pageQuery, projection); return await this.execute(query, this.cls); } @@ -326,10 +344,17 @@ export abstract class BaseRepository< projection?: ProjectionType, ): Promise { this.ensureCanPopulate(); - const query = this.findQuery(filters, pageQuery, projection).populate( - this.populate, - ); - return await this.execute(query, this.clsPopulate); + if (Array.isArray(pageQuery)) { + const query = this.findQuery(filters, pageQuery, projection).populate( + this.populate, + ); + return await this.execute(query, this.clsPopulate); + } else { + const query = this.findQuery(filters, pageQuery, projection).populate( + this.populate, + ); + return await this.execute(query, this.clsPopulate); + } } protected findAllQuery(sort?: QuerySortDto) { From 3acdbed03755c2c098c5e270966583b3a42e3d9c Mon Sep 17 00:00:00 2001 From: yassinedorbozgithub Date: Fri, 6 Dec 2024 18:27:24 +0100 Subject: [PATCH 4/9] fix: update limit default values --- api/src/utils/generics/base-repository.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/api/src/utils/generics/base-repository.ts b/api/src/utils/generics/base-repository.ts index c13a57be..7b9bd87f 100644 --- a/api/src/utils/generics/base-repository.ts +++ b/api/src/utils/generics/base-repository.ts @@ -279,7 +279,11 @@ export abstract class BaseRepository< const query = this.model.find(filter, projection); return query.sort([pageQuery] as [string, SortOrder][]); } else { - const { skip = 0, limit, sort = ['createdAt', 'asc'] } = pageQuery || {}; + const { + skip = 0, + limit = 0, + sort = ['createdAt', 'asc'], + } = pageQuery || {}; const query = this.model.find(filter, projection); return query .skip(skip) @@ -358,11 +362,11 @@ export abstract class BaseRepository< } protected findAllQuery(sort?: QuerySortDto) { - return this.findQuery({}, { limit: undefined, skip: undefined, sort }); + return this.findQuery({}, { limit: 0, skip: undefined, sort }); } async findAll(sort?: QuerySortDto) { - return await this.find({}, { limit: undefined, skip: undefined, sort }); + return await this.find({}, { limit: 0, skip: undefined, sort }); } async findAllAndPopulate(sort?: QuerySortDto) { From da783c0ef81c20733cad1f7c852898374381bf55 Mon Sep 17 00:00:00 2001 From: yassinedorbozgithub Date: Fri, 6 Dec 2024 18:27:48 +0100 Subject: [PATCH 5/9] fix: update skip default values --- api/src/utils/generics/base-repository.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/src/utils/generics/base-repository.ts b/api/src/utils/generics/base-repository.ts index 7b9bd87f..f3bd9fed 100644 --- a/api/src/utils/generics/base-repository.ts +++ b/api/src/utils/generics/base-repository.ts @@ -362,11 +362,11 @@ export abstract class BaseRepository< } protected findAllQuery(sort?: QuerySortDto) { - return this.findQuery({}, { limit: 0, skip: undefined, sort }); + return this.findQuery({}, { limit: 0, skip: 0, sort }); } async findAll(sort?: QuerySortDto) { - return await this.find({}, { limit: 0, skip: undefined, sort }); + return await this.find({}, { limit: 0, skip: 0, sort }); } async findAllAndPopulate(sort?: QuerySortDto) { From d9a87e99bfbb9a9dc6e9d0408c8df76e424e4c67 Mon Sep 17 00:00:00 2001 From: yassinedorbozgithub Date: Fri, 6 Dec 2024 18:34:18 +0100 Subject: [PATCH 6/9] fix: base-repository.ts methods returning types --- api/src/utils/generics/base-repository.ts | 57 ++++++++++++----------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/api/src/utils/generics/base-repository.ts b/api/src/utils/generics/base-repository.ts index f3bd9fed..2b01f632 100644 --- a/api/src/utils/generics/base-repository.ts +++ b/api/src/utils/generics/base-repository.ts @@ -22,6 +22,7 @@ import { SortOrder, UpdateQuery, UpdateWithAggregationPipeline, + UpdateWriteOpResult, } from 'mongoose'; import { TFilterQuery } from '@/utils/types/filter.types'; @@ -70,7 +71,7 @@ export abstract class BaseRepository< this.registerLifeCycleHooks(); } - getPopulate() { + getPopulate(): P[] { return this.populate; } @@ -79,7 +80,7 @@ export abstract class BaseRepository< return `hook:${entity}:${suffix}` as `hook:${IHookEntities}:${TNormalizedEvents}`; } - private registerLifeCycleHooks() { + private registerLifeCycleHooks(): void { const repository = this; const hooks = LifecycleHookManager.getHooks(this.cls.name); @@ -202,7 +203,7 @@ export abstract class BaseRepository< protected async execute>( query: Query, cls: new () => R, - ) { + ): Promise { const resultSet = await query.lean(this.leanOpts).exec(); return resultSet.map((doc) => plainToClass(cls, doc, this.transformOpts)); } @@ -211,7 +212,7 @@ export abstract class BaseRepository< query: Query, cls: new () => R, options?: ClassTransformOptions, - ) { + ): Promise { const doc = await query.lean(this.leanOpts).exec(); return plainToClass(cls, doc, options ?? this.transformOpts); } @@ -219,7 +220,7 @@ export abstract class BaseRepository< protected findOneQuery( criteria: string | TFilterQuery, projection?: ProjectionType, - ) { + ): Query { if (!criteria) { // An empty criteria would return the first document that it finds throw new Error('findOneQuery() should not have an empty criteria'); @@ -247,7 +248,7 @@ export abstract class BaseRepository< async findOneAndPopulate( criteria: string | TFilterQuery, projection?: ProjectionType, - ) { + ): Promise { this.ensureCanPopulate(); const query = this.findOneQuery(criteria, projection).populate( this.populate, @@ -262,19 +263,19 @@ export abstract class BaseRepository< filter: TFilterQuery, pageQuery?: QuerySortDto, projection?: ProjectionType, - ); + ): Query; protected findQuery( filter: TFilterQuery, pageQuery?: PageQueryDto, projection?: ProjectionType, - ); + ): Query; protected findQuery( filter: TFilterQuery, pageQuery?: QuerySortDto | PageQueryDto, projection?: ProjectionType, - ) { + ): Query { if (Array.isArray(pageQuery)) { const query = this.model.find(filter, projection); return query.sort([pageQuery] as [string, SortOrder][]); @@ -321,7 +322,7 @@ export abstract class BaseRepository< return await this.execute(query, this.cls); } - private ensureCanPopulate() { + private ensureCanPopulate(): void { if (!this.populate || !this.clsPopulate) { throw new Error('Cannot populate query'); } @@ -361,15 +362,17 @@ export abstract class BaseRepository< } } - protected findAllQuery(sort?: QuerySortDto) { + protected findAllQuery( + sort?: QuerySortDto, + ): Query { return this.findQuery({}, { limit: 0, skip: 0, sort }); } - async findAll(sort?: QuerySortDto) { + async findAll(sort?: QuerySortDto): Promise { return await this.find({}, { limit: 0, skip: 0, sort }); } - async findAllAndPopulate(sort?: QuerySortDto) { + async findAllAndPopulate(sort?: QuerySortDto): Promise { this.ensureCanPopulate(); const query = this.findAllQuery(sort).populate(this.populate); return await this.execute(query, this.clsPopulate); @@ -381,7 +384,7 @@ export abstract class BaseRepository< protected findPageQuery( filters: TFilterQuery, { skip, limit, sort }: PageQueryDto, - ) { + ): Query { return this.findQuery(filters) .skip(skip) .limit(limit) @@ -405,7 +408,7 @@ export abstract class BaseRepository< async findPageAndPopulate( filters: TFilterQuery, pageQuery: PageQueryDto, - ) { + ): Promise { this.ensureCanPopulate(); const query = this.findPageQuery(filters, pageQuery).populate( this.populate, @@ -431,7 +434,7 @@ export abstract class BaseRepository< ); } - async createMany(dtoArray: U[]) { + async createMany(dtoArray: U[]): Promise { const docs = await this.model.create(dtoArray); return docs.map((doc) => @@ -460,7 +463,7 @@ export abstract class BaseRepository< async updateMany>( filter: TFilterQuery, dto: UpdateQuery, - ) { + ): Promise { return await this.model.updateMany(filter, { $set: dto, }); @@ -476,19 +479,19 @@ export abstract class BaseRepository< return await this.model.deleteMany(criteria); } - async preValidate(_doc: HydratedDocument) { + async preValidate(_doc: HydratedDocument): Promise { // Nothing ... } - async postValidate(_validated: HydratedDocument) { + async postValidate(_validated: HydratedDocument): Promise { // Nothing ... } - async preCreate(_doc: HydratedDocument) { + async preCreate(_doc: HydratedDocument): Promise { // Nothing ... } - async postCreate(_created: HydratedDocument) { + async postCreate(_created: HydratedDocument): Promise { // Nothing ... } @@ -496,7 +499,7 @@ export abstract class BaseRepository< _query: Query, _criteria: TFilterQuery, _updates: UpdateWithAggregationPipeline | UpdateQuery, - ) { + ): Promise { // Nothing ... } @@ -504,35 +507,35 @@ export abstract class BaseRepository< _query: Query, _criteria: TFilterQuery, _updates: UpdateWithAggregationPipeline | UpdateQuery, - ) { + ): Promise { // Nothing ... } async postUpdateMany( _query: Query, _updated: any, - ) { + ): Promise { // Nothing ... } async postUpdate( _query: Query, _updated: T, - ) { + ): Promise { // Nothing ... } async preDelete( _query: Query, _criteria: TFilterQuery, - ) { + ): Promise { // Nothing ... } async postDelete( _query: Query, _result: DeleteResult, - ) { + ): Promise { // Nothing ... } } From 37ae2ec9adc5feecadfce5d7003708441d22424b Mon Sep 17 00:00:00 2001 From: yassinedorbozgithub Date: Mon, 9 Dec 2024 20:57:00 +0100 Subject: [PATCH 7/9] fix: reoder overloading signatures --- api/src/utils/generics/base-repository.ts | 36 +++++++++++------------ api/src/utils/generics/base-service.ts | 24 +++++++-------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/api/src/utils/generics/base-repository.ts b/api/src/utils/generics/base-repository.ts index 2b01f632..57a97aca 100644 --- a/api/src/utils/generics/base-repository.ts +++ b/api/src/utils/generics/base-repository.ts @@ -256,6 +256,12 @@ export abstract class BaseRepository< return await this.executeOne(query, this.clsPopulate); } + protected findQuery( + filter: TFilterQuery, + pageQuery?: PageQueryDto, + projection?: ProjectionType, + ): Query; + /** * @deprecated */ @@ -265,12 +271,6 @@ export abstract class BaseRepository< projection?: ProjectionType, ): Query; - protected findQuery( - filter: TFilterQuery, - pageQuery?: PageQueryDto, - projection?: ProjectionType, - ): Query; - protected findQuery( filter: TFilterQuery, pageQuery?: QuerySortDto | PageQueryDto, @@ -293,6 +293,12 @@ export abstract class BaseRepository< } } + async find( + filter: TFilterQuery, + pageQuery?: PageQueryDto, + projection?: ProjectionType, + ): Promise; + /** * @deprecated */ @@ -302,12 +308,6 @@ export abstract class BaseRepository< projection?: ProjectionType, ): Promise; - async find( - filter: TFilterQuery, - pageQuery?: PageQueryDto, - projection?: ProjectionType, - ): Promise; - async find( filter: TFilterQuery, pageQuery?: QuerySortDto | PageQueryDto, @@ -328,6 +328,12 @@ export abstract class BaseRepository< } } + async findAndPopulate( + filters: TFilterQuery, + pageQuery?: PageQueryDto, + projection?: ProjectionType, + ): Promise; + /** * @deprecated */ @@ -337,12 +343,6 @@ export abstract class BaseRepository< projection?: ProjectionType, ): Promise; - async findAndPopulate( - filters: TFilterQuery, - pageQuery?: PageQueryDto, - projection?: ProjectionType, - ): Promise; - async findAndPopulate( filters: TFilterQuery, pageQuery?: QuerySortDto | PageQueryDto, diff --git a/api/src/utils/generics/base-service.ts b/api/src/utils/generics/base-service.ts index 9686eb76..5faeaf4c 100644 --- a/api/src/utils/generics/base-service.ts +++ b/api/src/utils/generics/base-service.ts @@ -44,6 +44,12 @@ export abstract class BaseService< return await this.repository.findOneAndPopulate(criteria, projection); } + async find( + filter: TFilterQuery, + pageQuery?: PageQueryDto, + projection?: ProjectionType, + ): Promise; + /** * @deprecated */ @@ -53,12 +59,6 @@ export abstract class BaseService< projection?: ProjectionType, ): Promise; - async find( - filter: TFilterQuery, - pageQuery?: PageQueryDto, - projection?: ProjectionType, - ): Promise; - async find( filter: TFilterQuery, pageQuery?: QuerySortDto | PageQueryDto, @@ -70,6 +70,12 @@ export abstract class BaseService< return await this.repository.find(filter, pageQuery, projection); } + async findAndPopulate( + filters: TFilterQuery, + pageQuery?: PageQueryDto, + projection?: ProjectionType, + ): Promise; + /** * @deprecated */ @@ -79,12 +85,6 @@ export abstract class BaseService< projection?: ProjectionType, ): Promise; - async findAndPopulate( - filters: TFilterQuery, - pageQuery?: PageQueryDto, - projection?: ProjectionType, - ): Promise; - async findAndPopulate( filters: TFilterQuery, pageQuery?: QuerySortDto | PageQueryDto, From 91687f25ecb15e990811c4fd5e5d806e2ad3c6ba Mon Sep 17 00:00:00 2001 From: yassinedorbozgithub Date: Mon, 9 Dec 2024 11:51:41 +0100 Subject: [PATCH 8/9] fix: simplify logic --- api/src/utils/generics/base-repository.ts | 32 +++++++++++------------ 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/api/src/utils/generics/base-repository.ts b/api/src/utils/generics/base-repository.ts index 57a97aca..fdb55993 100644 --- a/api/src/utils/generics/base-repository.ts +++ b/api/src/utils/generics/base-repository.ts @@ -279,18 +279,18 @@ export abstract class BaseRepository< if (Array.isArray(pageQuery)) { const query = this.model.find(filter, projection); return query.sort([pageQuery] as [string, SortOrder][]); - } else { - const { - skip = 0, - limit = 0, - sort = ['createdAt', 'asc'], - } = pageQuery || {}; - const query = this.model.find(filter, projection); - return query - .skip(skip) - .limit(limit) - .sort([sort] as [string, SortOrder][]); } + + const { + skip = 0, + limit = 0, + sort = ['createdAt', 'asc'], + } = pageQuery || {}; + const query = this.model.find(filter, projection); + return query + .skip(skip) + .limit(limit) + .sort([sort] as [string, SortOrder][]); } async find( @@ -354,12 +354,12 @@ export abstract class BaseRepository< this.populate, ); return await this.execute(query, this.clsPopulate); - } else { - const query = this.findQuery(filters, pageQuery, projection).populate( - this.populate, - ); - return await this.execute(query, this.clsPopulate); } + + const query = this.findQuery(filters, pageQuery, projection).populate( + this.populate, + ); + return await this.execute(query, this.clsPopulate); } protected findAllQuery( From c1fcdf3b73bd856eabfce2c31515f9daadcb9a68 Mon Sep 17 00:00:00 2001 From: yassinedorbozgithub Date: Mon, 9 Dec 2024 12:11:47 +0100 Subject: [PATCH 9/9] fix: replace findpage method by find method --- api/src/attachment/controllers/attachment.controller.ts | 2 +- api/src/chat/repositories/message.repository.ts | 4 ++-- api/src/chat/repositories/subscriber.repository.ts | 2 +- api/src/chat/services/message.service.ts | 2 +- api/src/cms/controllers/content.controller.ts | 5 +---- api/src/cms/services/content.service.ts | 2 +- 6 files changed, 7 insertions(+), 10 deletions(-) diff --git a/api/src/attachment/controllers/attachment.controller.ts b/api/src/attachment/controllers/attachment.controller.ts index fbc3717a..f6586742 100644 --- a/api/src/attachment/controllers/attachment.controller.ts +++ b/api/src/attachment/controllers/attachment.controller.ts @@ -94,7 +94,7 @@ export class AttachmentController extends BaseController { ) filters: TFilterQuery, ) { - return await this.attachmentService.findPage(filters, pageQuery); + return await this.attachmentService.find(filters, pageQuery); } /** diff --git a/api/src/chat/repositories/message.repository.ts b/api/src/chat/repositories/message.repository.ts index 64bd99f4..72fbe300 100644 --- a/api/src/chat/repositories/message.repository.ts +++ b/api/src/chat/repositories/message.repository.ts @@ -72,7 +72,7 @@ export class MessageRepository extends BaseRepository< until = new Date(), limit: number = 30, ) { - return await this.findPage( + return await this.find( { $or: [{ recipient: subscriber.id }, { sender: subscriber.id }], createdAt: { $lt: until }, @@ -96,7 +96,7 @@ export class MessageRepository extends BaseRepository< since = new Date(), limit: number = 30, ) { - return await this.findPage( + return await this.find( { $or: [{ recipient: subscriber.id }, { sender: subscriber.id }], createdAt: { $gt: since }, diff --git a/api/src/chat/repositories/subscriber.repository.ts b/api/src/chat/repositories/subscriber.repository.ts index 9c81cfdd..a3ee6cd1 100644 --- a/api/src/chat/repositories/subscriber.repository.ts +++ b/api/src/chat/repositories/subscriber.repository.ts @@ -106,7 +106,7 @@ export class SubscriberRepository extends BaseRepository< * @returns The constructed query object. */ findByForeignIdQuery(id: string) { - return this.findPageQuery( + return this.findQuery( { foreign_id: id }, { skip: 0, limit: 1, sort: ['lastvisit', 'desc'] }, ); diff --git a/api/src/chat/services/message.service.ts b/api/src/chat/services/message.service.ts index c66d0903..67474daa 100644 --- a/api/src/chat/services/message.service.ts +++ b/api/src/chat/services/message.service.ts @@ -126,7 +126,7 @@ export class MessageService extends BaseService< * @returns The message history since the specified date. */ async findLastMessages(subscriber: Subscriber, limit: number = 5) { - const lastMessages = await this.findPage( + const lastMessages = await this.find( { $or: [{ sender: subscriber.id }, { recipient: subscriber.id }], }, diff --git a/api/src/cms/controllers/content.controller.ts b/api/src/cms/controllers/content.controller.ts index b807b051..5f4bf0c5 100644 --- a/api/src/cms/controllers/content.controller.ts +++ b/api/src/cms/controllers/content.controller.ts @@ -283,10 +283,7 @@ export class ContentController extends BaseController< ); throw new NotFoundException(`ContentType of id ${contentType} not found`); } - return await this.contentService.findPage( - { entity: contentType }, - pageQuery, - ); + return await this.contentService.find({ entity: contentType }, pageQuery); } /** diff --git a/api/src/cms/services/content.service.ts b/api/src/cms/services/content.service.ts index bdcac780..03883828 100644 --- a/api/src/cms/services/content.service.ts +++ b/api/src/cms/services/content.service.ts @@ -170,7 +170,7 @@ export class ContentService extends BaseService< } try { - const contents = await this.findPage(query, { + const contents = await this.find(query, { skip, limit, sort: ['createdAt', 'desc'],