refactor: move translation to the i18n module

This commit is contained in:
Mohamed Marrouchi 2024-09-22 10:01:59 +01:00
parent 38950a0287
commit 614766c246
14 changed files with 36 additions and 33 deletions

View File

@ -26,13 +26,13 @@ import conversationSchema, {
import labelSchema, { Label } from '@/chat/schemas/label.schema'; import labelSchema, { Label } from '@/chat/schemas/label.schema';
import messageSchema, { Message } from '@/chat/schemas/message.schema'; import messageSchema, { Message } from '@/chat/schemas/message.schema';
import subscriberSchema, { Subscriber } from '@/chat/schemas/subscriber.schema'; import subscriberSchema, { Subscriber } from '@/chat/schemas/subscriber.schema';
import translationSchema, {
Translation,
} from '@/chat/schemas/translation.schema';
import { ContentType } from '@/cms/schemas/content-type.schema'; import { ContentType } from '@/cms/schemas/content-type.schema';
import contentSchema, { Content } from '@/cms/schemas/content.schema'; import contentSchema, { Content } from '@/cms/schemas/content.schema';
import menuSchema, { Menu } from '@/cms/schemas/menu.schema'; import menuSchema, { Menu } from '@/cms/schemas/menu.schema';
import { config } from '@/config'; import { config } from '@/config';
import translationSchema, {
Translation,
} from '@/i18n/schemas/translation.schema';
import nlpEntitySchema, { NlpEntity } from '@/nlp/schemas/nlp-entity.schema'; import nlpEntitySchema, { NlpEntity } from '@/nlp/schemas/nlp-entity.schema';
import nlpSampleEntitySchema, { import nlpSampleEntitySchema, {
NlpSampleEntity, NlpSampleEntity,

View File

@ -23,7 +23,6 @@ import { ContextVarController } from './controllers/context-var.controller';
import { LabelController } from './controllers/label.controller'; import { LabelController } from './controllers/label.controller';
import { MessageController } from './controllers/message.controller'; import { MessageController } from './controllers/message.controller';
import { SubscriberController } from './controllers/subscriber.controller'; import { SubscriberController } from './controllers/subscriber.controller';
import { TranslationController } from './controllers/translation.controller';
import { BlockRepository } from './repositories/block.repository'; import { BlockRepository } from './repositories/block.repository';
import { CategoryRepository } from './repositories/category.repository'; import { CategoryRepository } from './repositories/category.repository';
import { ContextVarRepository } from './repositories/context-var.repository'; import { ContextVarRepository } from './repositories/context-var.repository';
@ -31,7 +30,6 @@ import { ConversationRepository } from './repositories/conversation.repository';
import { LabelRepository } from './repositories/label.repository'; import { LabelRepository } from './repositories/label.repository';
import { MessageRepository } from './repositories/message.repository'; import { MessageRepository } from './repositories/message.repository';
import { SubscriberRepository } from './repositories/subscriber.repository'; import { SubscriberRepository } from './repositories/subscriber.repository';
import { TranslationRepository } from './repositories/translation.repository';
import { BlockModel } from './schemas/block.schema'; import { BlockModel } from './schemas/block.schema';
import { CategoryModel } from './schemas/category.schema'; import { CategoryModel } from './schemas/category.schema';
import { ContextVarModel } from './schemas/context-var.schema'; import { ContextVarModel } from './schemas/context-var.schema';
@ -39,10 +37,8 @@ import { ConversationModel } from './schemas/conversation.schema';
import { LabelModel } from './schemas/label.schema'; import { LabelModel } from './schemas/label.schema';
import { MessageModel } from './schemas/message.schema'; import { MessageModel } from './schemas/message.schema';
import { SubscriberModel } from './schemas/subscriber.schema'; import { SubscriberModel } from './schemas/subscriber.schema';
import { TranslationModel } from './schemas/translation.schema';
import { CategorySeeder } from './seeds/category.seed'; import { CategorySeeder } from './seeds/category.seed';
import { ContextVarSeeder } from './seeds/context-var.seed'; import { ContextVarSeeder } from './seeds/context-var.seed';
import { TranslationSeeder } from './seeds/translation.seed';
import { BlockService } from './services/block.service'; import { BlockService } from './services/block.service';
import { BotService } from './services/bot.service'; import { BotService } from './services/bot.service';
import { CategoryService } from './services/category.service'; import { CategoryService } from './services/category.service';
@ -52,7 +48,6 @@ import { ConversationService } from './services/conversation.service';
import { LabelService } from './services/label.service'; import { LabelService } from './services/label.service';
import { MessageService } from './services/message.service'; import { MessageService } from './services/message.service';
import { SubscriberService } from './services/subscriber.service'; import { SubscriberService } from './services/subscriber.service';
import { TranslationService } from './services/translation.service';
@Module({ @Module({
imports: [ imports: [
@ -63,7 +58,6 @@ import { TranslationService } from './services/translation.service';
BlockModel, BlockModel,
MessageModel, MessageModel,
SubscriberModel, SubscriberModel,
TranslationModel,
ConversationModel, ConversationModel,
SubscriberModel, SubscriberModel,
]), ]),
@ -81,7 +75,6 @@ import { TranslationService } from './services/translation.service';
BlockController, BlockController,
MessageController, MessageController,
SubscriberController, SubscriberController,
TranslationController,
], ],
providers: [ providers: [
CategoryRepository, CategoryRepository,
@ -90,7 +83,6 @@ import { TranslationService } from './services/translation.service';
BlockRepository, BlockRepository,
MessageRepository, MessageRepository,
SubscriberRepository, SubscriberRepository,
TranslationRepository,
ConversationRepository, ConversationRepository,
CategoryService, CategoryService,
ContextVarService, ContextVarService,
@ -98,13 +90,11 @@ import { TranslationService } from './services/translation.service';
BlockService, BlockService,
MessageService, MessageService,
SubscriberService, SubscriberService,
TranslationService,
CategorySeeder, CategorySeeder,
ContextVarSeeder, ContextVarSeeder,
ConversationService, ConversationService,
ChatService, ChatService,
BotService, BotService,
TranslationSeeder,
], ],
exports: [SubscriberService, MessageService, LabelService, BlockService], exports: [SubscriberService, MessageService, LabelService, BlockService],
}) })

View File

@ -17,6 +17,16 @@ import { AttachmentRepository } from '@/attachment/repositories/attachment.repos
import { AttachmentModel } from '@/attachment/schemas/attachment.schema'; import { AttachmentModel } from '@/attachment/schemas/attachment.schema';
import { AttachmentService } from '@/attachment/services/attachment.service'; import { AttachmentService } from '@/attachment/services/attachment.service';
import { ChannelService } from '@/channel/channel.service'; import { ChannelService } from '@/channel/channel.service';
import { MessageController } from '@/chat/controllers/message.controller';
import { BlockRepository } from '@/chat/repositories/block.repository';
import { MessageRepository } from '@/chat/repositories/message.repository';
import { SubscriberRepository } from '@/chat/repositories/subscriber.repository';
import { BlockModel } from '@/chat/schemas/block.schema';
import { MessageModel } from '@/chat/schemas/message.schema';
import { SubscriberModel } from '@/chat/schemas/subscriber.schema';
import { BlockService } from '@/chat/services/block.service';
import { MessageService } from '@/chat/services/message.service';
import { SubscriberService } from '@/chat/services/subscriber.service';
import { ContentRepository } from '@/cms/repositories/content.repository'; import { ContentRepository } from '@/cms/repositories/content.repository';
import { MenuRepository } from '@/cms/repositories/menu.repository'; import { MenuRepository } from '@/cms/repositories/menu.repository';
import { ContentModel } from '@/cms/schemas/content.schema'; import { ContentModel } from '@/cms/schemas/content.schema';
@ -39,20 +49,10 @@ import {
rootMongooseTestModule, rootMongooseTestModule,
} from '@/utils/test/test'; } from '@/utils/test/test';
import { MessageController } from './message.controller';
import { TranslationController } from './translation.controller'; import { TranslationController } from './translation.controller';
import { TranslationUpdateDto } from '../dto/translation.dto'; import { TranslationUpdateDto } from '../dto/translation.dto';
import { BlockRepository } from '../repositories/block.repository';
import { MessageRepository } from '../repositories/message.repository';
import { SubscriberRepository } from '../repositories/subscriber.repository';
import { TranslationRepository } from '../repositories/translation.repository'; import { TranslationRepository } from '../repositories/translation.repository';
import { BlockModel } from '../schemas/block.schema';
import { MessageModel } from '../schemas/message.schema';
import { SubscriberModel } from '../schemas/subscriber.schema';
import { Translation, TranslationModel } from '../schemas/translation.schema'; import { Translation, TranslationModel } from '../schemas/translation.schema';
import { BlockService } from '../services/block.service';
import { MessageService } from '../services/message.service';
import { SubscriberService } from '../services/subscriber.service';
import { TranslationService } from '../services/translation.service'; import { TranslationService } from '../services/translation.service';
describe('TranslationController', () => { describe('TranslationController', () => {

View File

@ -9,6 +9,7 @@
import { DynamicModule, Global, Inject, Module } from '@nestjs/common'; import { DynamicModule, Global, Inject, Module } from '@nestjs/common';
import { HttpAdapterHost } from '@nestjs/core'; import { HttpAdapterHost } from '@nestjs/core';
import { MongooseModule } from '@nestjs/mongoose';
import { import {
I18N_OPTIONS, I18N_OPTIONS,
I18N_TRANSLATIONS, I18N_TRANSLATIONS,
@ -18,7 +19,12 @@ import {
} from 'nestjs-i18n'; } from 'nestjs-i18n';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { TranslationController } from './controllers/translation.controller';
import { TranslationRepository } from './repositories/translation.repository';
import { TranslationModel } from './schemas/translation.schema';
import { TranslationSeeder } from './seeds/translation.seed';
import { I18nService } from './services/i18n.service'; import { I18nService } from './services/i18n.service';
import { TranslationService } from './services/translation.service';
@Global() @Global()
@Module({}) @Module({})
@ -34,10 +40,17 @@ export class I18nModule extends NativeI18nModule {
} }
static forRoot(options: I18nOptions): DynamicModule { static forRoot(options: I18nOptions): DynamicModule {
const { providers, exports } = super.forRoot(options); const { imports, providers, controllers, exports } = super.forRoot(options);
return { return {
module: I18nModule, module: I18nModule,
providers: providers.concat(I18nService), imports: imports.concat([MongooseModule.forFeature([TranslationModel])]),
controllers: controllers.concat([TranslationController]),
providers: providers.concat([
I18nService,
TranslationRepository,
TranslationService,
TranslationSeeder,
]),
exports: exports.concat(I18nService), exports: exports.concat(I18nService),
}; };
} }

View File

@ -14,7 +14,7 @@ import { Document, Model, Query, Types } from 'mongoose';
import { BaseRepository, DeleteResult } from '@/utils/generics/base-repository'; import { BaseRepository, DeleteResult } from '@/utils/generics/base-repository';
import { Translation } from '../schemas/translation.schema'; import { Translation } from '../../i18n/schemas/translation.schema';
@Injectable() @Injectable()
export class TranslationRepository extends BaseRepository<Translation> { export class TranslationRepository extends BaseRepository<Translation> {

View File

@ -17,8 +17,8 @@ import {
} from 'nestjs-i18n'; } from 'nestjs-i18n';
import { IfAnyOrNever } from 'nestjs-i18n/dist/types'; import { IfAnyOrNever } from 'nestjs-i18n/dist/types';
import { Translation } from '@/chat/schemas/translation.schema';
import { config } from '@/config'; import { config } from '@/config';
import { Translation } from '@/i18n/schemas/translation.schema';
@Injectable() @Injectable()
export class I18nService< export class I18nService<

View File

@ -14,9 +14,9 @@ import { I18nService } from '@/i18n/services/i18n.service';
import { SettingService } from '@/setting/services/setting.service'; import { SettingService } from '@/setting/services/setting.service';
import { BaseService } from '@/utils/generics/base-service'; import { BaseService } from '@/utils/generics/base-service';
import { BlockService } from './block.service'; import { Block } from '../../chat/schemas/block.schema';
import { BlockService } from '../../chat/services/block.service';
import { TranslationRepository } from '../repositories/translation.repository'; import { TranslationRepository } from '../repositories/translation.repository';
import { Block } from '../schemas/block.schema';
import { Translation } from '../schemas/translation.schema'; import { Translation } from '../schemas/translation.schema';
@Injectable() @Injectable()

View File

@ -13,8 +13,8 @@ import { CategorySeeder } from './chat/seeds/category.seed';
import { categoryModels } from './chat/seeds/category.seed-model'; import { categoryModels } from './chat/seeds/category.seed-model';
import { ContextVarSeeder } from './chat/seeds/context-var.seed'; import { ContextVarSeeder } from './chat/seeds/context-var.seed';
import { contextVarModels } from './chat/seeds/context-var.seed-model'; import { contextVarModels } from './chat/seeds/context-var.seed-model';
import { TranslationSeeder } from './chat/seeds/translation.seed'; import { TranslationSeeder } from './i18n/seeds/translation.seed';
import { translationModels } from './chat/seeds/translation.seed-model'; import { translationModels } from './i18n/seeds/translation.seed-model';
import { LoggerService } from './logger/logger.service'; import { LoggerService } from './logger/logger.service';
import { NlpEntitySeeder } from './nlp/seeds/nlp-entity.seed'; import { NlpEntitySeeder } from './nlp/seeds/nlp-entity.seed';
import { nlpEntityModels } from './nlp/seeds/nlp-entity.seed-model'; import { nlpEntityModels } from './nlp/seeds/nlp-entity.seed-model';

View File

@ -9,8 +9,8 @@
import mongoose from 'mongoose'; import mongoose from 'mongoose';
import { TranslationUpdateDto } from '@/chat/dto/translation.dto'; import { TranslationUpdateDto } from '@/i18n/dto/translation.dto';
import { TranslationModel } from '@/chat/schemas/translation.schema'; import { TranslationModel } from '@/i18n/schemas/translation.schema';
export const translationFixtures: TranslationUpdateDto[] = [ export const translationFixtures: TranslationUpdateDto[] = [
{ {