diff --git a/api/src/analytics/repositories/bot-stats.repository.ts b/api/src/analytics/repositories/bot-stats.repository.ts index 370abddd..71ee8fa5 100644 --- a/api/src/analytics/repositories/bot-stats.repository.ts +++ b/api/src/analytics/repositories/bot-stats.repository.ts @@ -16,7 +16,7 @@ import { BaseRepository } from '@/utils/generics/base-repository'; import { BotStats, BotStatsType } from '../schemas/bot-stats.schema'; @Injectable() -export class BotStatsRepository extends BaseRepository { +export class BotStatsRepository extends BaseRepository { constructor(@InjectModel(BotStats.name) readonly model: Model) { super(model, BotStats); } diff --git a/api/src/chat/controllers/block.controller.ts b/api/src/chat/controllers/block.controller.ts index 9e8dce12..2bf60b3e 100644 --- a/api/src/chat/controllers/block.controller.ts +++ b/api/src/chat/controllers/block.controller.ts @@ -36,14 +36,24 @@ import { PopulatePipe } from '@/utils/pipes/populate.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; import { BlockCreateDto, BlockUpdateDto } from '../dto/block.dto'; -import { Block, BlockFull, BlockStub } from '../schemas/block.schema'; +import { + Block, + BlockFull, + BlockPopulate, + BlockStub, +} from '../schemas/block.schema'; import { BlockService } from '../services/block.service'; import { CategoryService } from '../services/category.service'; import { LabelService } from '../services/label.service'; @UseInterceptors(CsrfInterceptor) @Controller('Block') -export class BlockController extends BaseController { +export class BlockController extends BaseController< + Block, + BlockStub, + BlockPopulate, + BlockFull +> { constructor( private readonly blockService: BlockService, private readonly logger: LoggerService, @@ -68,15 +78,7 @@ export class BlockController extends BaseController { @Query(new SearchFilterPipe({ allowedFields: ['category'] })) filters: TFilterQuery, ): Promise { - return this.canPopulate(populate, [ - 'trigger_labels', - 'assign_labels', - 'nextBlocks', - 'attachedBlock', - 'category', - 'previousBlocks', - 'attachedToBlock', - ]) + return this.canPopulate(populate) ? await this.blockService.findAndPopulate(filters) : await this.blockService.find(filters); } @@ -189,15 +191,7 @@ export class BlockController extends BaseController { @Query(PopulatePipe) populate: string[], ): Promise { - const doc = this.canPopulate(populate, [ - 'trigger_labels', - 'assign_labels', - 'nextBlocks', - 'attachedBlock', - 'category', - 'previousBlocks', - 'attachedToBlock', - ]) + const doc = this.canPopulate(populate) ? await this.blockService.findOneAndPopulate(id) : await this.blockService.findOne(id); if (!doc) { diff --git a/api/src/chat/controllers/category.controller.ts b/api/src/chat/controllers/category.controller.ts index 73c3d055..2c6a3dc4 100644 --- a/api/src/chat/controllers/category.controller.ts +++ b/api/src/chat/controllers/category.controller.ts @@ -33,7 +33,6 @@ import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; import { CategoryCreateDto, CategoryUpdateDto } from '../dto/category.dto'; import { Category } from '../schemas/category.schema'; -import { BlockService } from '../services/block.service'; import { CategoryService } from '../services/category.service'; @UseInterceptors(CsrfInterceptor) @@ -41,7 +40,6 @@ import { CategoryService } from '../services/category.service'; export class CategoryController extends BaseController { constructor( private readonly categoryService: CategoryService, - private readonly blockService: BlockService, private readonly logger: LoggerService, ) { super(categoryService); diff --git a/api/src/chat/controllers/label.controller.ts b/api/src/chat/controllers/label.controller.ts index 475e26c5..596d9db6 100644 --- a/api/src/chat/controllers/label.controller.ts +++ b/api/src/chat/controllers/label.controller.ts @@ -32,12 +32,22 @@ import { PopulatePipe } from '@/utils/pipes/populate.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; import { LabelCreateDto, LabelUpdateDto } from '../dto/label.dto'; -import { Label, LabelStub } from '../schemas/label.schema'; +import { + Label, + LabelFull, + LabelPopulate, + LabelStub, +} from '../schemas/label.schema'; import { LabelService } from '../services/label.service'; @UseInterceptors(CsrfInterceptor) @Controller('label') -export class LabelController extends BaseController { +export class LabelController extends BaseController< + Label, + LabelStub, + LabelPopulate, + LabelFull +> { constructor( private readonly labelService: LabelService, private readonly logger: LoggerService, @@ -53,7 +63,7 @@ export class LabelController extends BaseController { @Query(new SearchFilterPipe