mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-14 09:51:24 -06:00
180 lines
7.7 KiB
TypeScript
180 lines
7.7 KiB
TypeScript
import { configService } from '../config/env.config';
|
|
import { eventEmitter } from '../config/event.config';
|
|
import { Logger } from '../config/logger.config';
|
|
import { dbserver } from '../libs/db.connect';
|
|
import { RedisCache } from '../libs/redis.client';
|
|
import { ChamaaiController } from './controllers/chamaai.controller';
|
|
import { ChatController } from './controllers/chat.controller';
|
|
import { GroupController } from './controllers/group.controller';
|
|
import { InstanceController } from './controllers/instance.controller';
|
|
import { LabelController } from './controllers/label.controller';
|
|
import { ProxyController } from './controllers/proxy.controller';
|
|
import { SendMessageController } from './controllers/sendMessage.controller';
|
|
import { SettingsController } from './controllers/settings.controller';
|
|
import { WebhookController } from './controllers/webhook.controller';
|
|
import { CacheEngine } from './integrations/chatwoot/cache/cacheengine';
|
|
import { ChatwootController } from './integrations/chatwoot/controllers/chatwoot.controller';
|
|
import { ChatwootRepository } from './integrations/chatwoot/repository/chatwoot.repository';
|
|
import { ChatwootService } from './integrations/chatwoot/services/chatwoot.service';
|
|
import { RabbitmqController } from './integrations/rabbitmq/controllers/rabbitmq.controller';
|
|
import { RabbitmqRepository } from './integrations/rabbitmq/repository/rabbitmq.repository';
|
|
import { RabbitmqService } from './integrations/rabbitmq/services/rabbitmq.service';
|
|
import { SqsController } from './integrations/sqs/controllers/sqs.controller';
|
|
import { SqsRepository } from './integrations/sqs/repository/sqs.repository';
|
|
import { SqsService } from './integrations/sqs/services/sqs.service';
|
|
import { TypebotController } from './integrations/typebot/controllers/typebot.controller';
|
|
import { TypebotRepository } from './integrations/typebot/repository/typebot.repository';
|
|
import { TypebotService } from './integrations/typebot/services/typebot.service';
|
|
import { WebsocketController } from './integrations/websocket/controllers/websocket.controller';
|
|
import { WebsocketRepository } from './integrations/websocket/repository/websocket.repository';
|
|
import { WebsocketService } from './integrations/websocket/services/websocket.service';
|
|
import {
|
|
AuthModel,
|
|
ChamaaiModel,
|
|
ChatModel,
|
|
ChatwootModel,
|
|
ContactModel,
|
|
IntegrationModel,
|
|
MessageModel,
|
|
MessageUpModel,
|
|
ProxyModel,
|
|
RabbitmqModel,
|
|
SettingsModel,
|
|
SqsModel,
|
|
TypebotModel,
|
|
WebhookModel,
|
|
WebsocketModel,
|
|
} from './models';
|
|
import { LabelModel } from './models/label.model';
|
|
import { AuthRepository } from './repository/auth.repository';
|
|
import { ChamaaiRepository } from './repository/chamaai.repository';
|
|
import { ChatRepository } from './repository/chat.repository';
|
|
import { ContactRepository } from './repository/contact.repository';
|
|
import { IntegrationRepository } from './repository/integration.repository';
|
|
import { LabelRepository } from './repository/label.repository';
|
|
import { MessageRepository } from './repository/message.repository';
|
|
import { MessageUpRepository } from './repository/messageUp.repository';
|
|
import { ProxyRepository } from './repository/proxy.repository';
|
|
import { RepositoryBroker } from './repository/repository.manager';
|
|
import { SettingsRepository } from './repository/settings.repository';
|
|
import { WebhookRepository } from './repository/webhook.repository';
|
|
import { AuthService } from './services/auth.service';
|
|
import { CacheService } from './services/cache.service';
|
|
import { ChamaaiService } from './services/chamaai.service';
|
|
import { IntegrationService } from './services/integration.service';
|
|
import { WAMonitoringService } from './services/monitor.service';
|
|
import { ProxyService } from './services/proxy.service';
|
|
import { SettingsService } from './services/settings.service';
|
|
import { WebhookService } from './services/webhook.service';
|
|
|
|
const logger = new Logger('WA MODULE');
|
|
|
|
const messageRepository = new MessageRepository(MessageModel, configService);
|
|
const chatRepository = new ChatRepository(ChatModel, configService);
|
|
const contactRepository = new ContactRepository(ContactModel, configService);
|
|
const messageUpdateRepository = new MessageUpRepository(MessageUpModel, configService);
|
|
const typebotRepository = new TypebotRepository(TypebotModel, configService);
|
|
const webhookRepository = new WebhookRepository(WebhookModel, configService);
|
|
const websocketRepository = new WebsocketRepository(WebsocketModel, configService);
|
|
const proxyRepository = new ProxyRepository(ProxyModel, configService);
|
|
const chamaaiRepository = new ChamaaiRepository(ChamaaiModel, configService);
|
|
const rabbitmqRepository = new RabbitmqRepository(RabbitmqModel, configService);
|
|
const sqsRepository = new SqsRepository(SqsModel, configService);
|
|
const integrationRepository = new IntegrationRepository(IntegrationModel, configService);
|
|
const chatwootRepository = new ChatwootRepository(ChatwootModel, configService);
|
|
const settingsRepository = new SettingsRepository(SettingsModel, configService);
|
|
const authRepository = new AuthRepository(AuthModel, IntegrationModel, configService);
|
|
const labelRepository = new LabelRepository(LabelModel, configService);
|
|
|
|
export const repository = new RepositoryBroker(
|
|
messageRepository,
|
|
chatRepository,
|
|
contactRepository,
|
|
messageUpdateRepository,
|
|
webhookRepository,
|
|
chatwootRepository,
|
|
settingsRepository,
|
|
websocketRepository,
|
|
rabbitmqRepository,
|
|
sqsRepository,
|
|
typebotRepository,
|
|
proxyRepository,
|
|
chamaaiRepository,
|
|
integrationRepository,
|
|
authRepository,
|
|
labelRepository,
|
|
configService,
|
|
dbserver?.getClient(),
|
|
);
|
|
|
|
export const cache = new RedisCache();
|
|
|
|
const chatwootCache = new CacheService(new CacheEngine(configService, ChatwootService.name).getEngine());
|
|
|
|
export const waMonitor = new WAMonitoringService(eventEmitter, configService, repository, cache, chatwootCache);
|
|
|
|
const authService = new AuthService(configService, waMonitor, repository);
|
|
|
|
const typebotService = new TypebotService(waMonitor, configService, eventEmitter);
|
|
|
|
export const typebotController = new TypebotController(typebotService);
|
|
|
|
const webhookService = new WebhookService(waMonitor);
|
|
|
|
export const webhookController = new WebhookController(webhookService, waMonitor);
|
|
|
|
const websocketService = new WebsocketService(waMonitor);
|
|
|
|
export const websocketController = new WebsocketController(websocketService);
|
|
|
|
const proxyService = new ProxyService(waMonitor);
|
|
|
|
export const proxyController = new ProxyController(proxyService, waMonitor);
|
|
|
|
const chamaaiService = new ChamaaiService(waMonitor, configService);
|
|
|
|
export const chamaaiController = new ChamaaiController(chamaaiService);
|
|
|
|
const rabbitmqService = new RabbitmqService(waMonitor);
|
|
|
|
export const rabbitmqController = new RabbitmqController(rabbitmqService);
|
|
|
|
const sqsService = new SqsService(waMonitor);
|
|
|
|
export const sqsController = new SqsController(sqsService);
|
|
|
|
const integrationService = new IntegrationService(waMonitor);
|
|
|
|
const chatwootService = new ChatwootService(waMonitor, configService, repository, chatwootCache);
|
|
|
|
export const chatwootController = new ChatwootController(chatwootService, configService, repository);
|
|
|
|
const settingsService = new SettingsService(waMonitor);
|
|
|
|
export const settingsController = new SettingsController(settingsService);
|
|
|
|
export const instanceController = new InstanceController(
|
|
waMonitor,
|
|
configService,
|
|
repository,
|
|
eventEmitter,
|
|
authService,
|
|
webhookService,
|
|
chatwootService,
|
|
settingsService,
|
|
websocketService,
|
|
rabbitmqService,
|
|
sqsService,
|
|
typebotService,
|
|
integrationService,
|
|
proxyController,
|
|
cache,
|
|
chatwootCache,
|
|
);
|
|
export const sendMessageController = new SendMessageController(waMonitor);
|
|
export const chatController = new ChatController(waMonitor);
|
|
export const groupController = new GroupController(waMonitor);
|
|
export const labelController = new LabelController(waMonitor);
|
|
|
|
logger.info('Module - ON');
|