fix: app config import
This commit is contained in:
1 parent
061601826e
commit
1c5ece5a86
11 files changed
+45
-34
No files matched your search
@@ -1,4 +1,4 @@
|
||||
import { AppName } from '@waha/apps/app_sdk/apps/name';
|
||||
import { AppName } from '@waha/apps/app_sdk/apps/apps';
|
||||
|
||||
export const SessionExamples = {
|
||||
basic: {
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
import { Type } from '@nestjs/common';
|
||||
import { BrazilianPhoneNumbersAppConfig } from '@waha/apps/brazilian-phone-numbers/dto/config.dto';
|
||||
import { CallsAppConfig } from '@waha/apps/calls/dto/config.dto';
|
||||
import { ChatWootAppConfig } from '@waha/apps/chatwoot/dto/config.dto';
|
||||
import { McpAppConfig } from '@waha/apps/mcp/dto/config.dto';
|
||||
|
||||
export enum AppName {
|
||||
chatwoot = 'chatwoot',
|
||||
calls = 'calls',
|
||||
mcp = 'mcp',
|
||||
brazilianPhoneNumbers = 'brazilian-phone-numbers',
|
||||
}
|
||||
|
||||
/**
|
||||
* DTO classes used to transform and validate App.config, by app name.
|
||||
* Kept separate from the registry so DTOs (imported by core structures) can resolve config classes
|
||||
* without pulling in every app module (controllers, services, queues) - that creates require cycles.
|
||||
*/
|
||||
export const AppConfigClasses: Record<AppName, Type<any>> = {
|
||||
[AppName.brazilianPhoneNumbers]: BrazilianPhoneNumbersAppConfig,
|
||||
[AppName.calls]: CallsAppConfig,
|
||||
[AppName.chatwoot]: ChatWootAppConfig,
|
||||
[AppName.mcp]: McpAppConfig,
|
||||
};
|
||||
|
||||
export function GetAppConfigClass(name: AppName): Type<any> {
|
||||
return AppConfigClasses[name] ?? Object;
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Type } from '@nestjs/common';
|
||||
import { AppName } from '@waha/apps/app_sdk/apps/name';
|
||||
import { AppName } from '@waha/apps/app_sdk/apps/apps';
|
||||
import { GetApp } from '@waha/apps/app_sdk/apps/registry';
|
||||
import { IAppService } from '@waha/apps/app_sdk/services/IAppService';
|
||||
|
||||
@@ -36,8 +36,6 @@ export interface AppModule {
|
||||
nestjs: AppNestJS;
|
||||
// Service implementing app lifecycle hooks; must also be listed in 'nestjs.providers'
|
||||
Service: Type<IAppService>;
|
||||
// DTO class used to transform and validate App.config
|
||||
ConfigClass: Type<any>;
|
||||
}
|
||||
|
||||
export function isUniqueApp(name: AppName): boolean {
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
export enum AppName {
|
||||
chatwoot = 'chatwoot',
|
||||
calls = 'calls',
|
||||
mcp = 'mcp',
|
||||
brazilianPhoneNumbers = 'brazilian-phone-numbers',
|
||||
}
|
||||
@@ -6,9 +6,12 @@ import {
|
||||
IsString,
|
||||
ValidateNested,
|
||||
} from 'class-validator';
|
||||
import { ApiProperty } from '@nestjs/swagger';
|
||||
import { AppName } from '@waha/apps/app_sdk/apps/name';
|
||||
import { GetApp } from '@waha/apps/app_sdk/apps/registry';
|
||||
import { ApiExtraModels, ApiProperty } from '@nestjs/swagger';
|
||||
import {
|
||||
AppConfigClasses,
|
||||
AppName,
|
||||
GetAppConfigClass,
|
||||
} from '@waha/apps/app_sdk/apps/apps';
|
||||
|
||||
export class App<T = any> {
|
||||
@IsString()
|
||||
@@ -37,7 +40,10 @@ export class App<T = any> {
|
||||
if (!name) {
|
||||
return Object;
|
||||
}
|
||||
return GetApp(name)?.ConfigClass ?? Object;
|
||||
return GetAppConfigClass(name);
|
||||
})
|
||||
config: T;
|
||||
}
|
||||
|
||||
// Swagger models for app configs
|
||||
ApiExtraModels(...Object.values(AppConfigClasses))(App);
|
||||
@@ -1,14 +1,7 @@
|
||||
import { ApiExtraModels } from '@nestjs/swagger';
|
||||
import { AppRuntimeConfig } from '@waha/apps/app_sdk/apps/AppRuntime';
|
||||
import { GetApps } from '@waha/apps/app_sdk/apps/registry';
|
||||
import { App } from '@waha/apps/app_sdk/dto/app.dto';
|
||||
import { AppsDisabled } from '@waha/apps/apps.module.disabled';
|
||||
import { AppsEnabled } from '@waha/apps/apps.module.enabled';
|
||||
|
||||
// Swagger models for app configs come from the registry -
|
||||
// applied here instead of app.dto.ts to avoid a require cycle through the registry
|
||||
ApiExtraModels(...GetApps().map((app) => app.ConfigClass))(App);
|
||||
|
||||
export const AppsModuleExports = AppRuntimeConfig.Enabled()
|
||||
? AppsEnabled
|
||||
: AppsDisabled;
|
||||
@@ -22,7 +22,7 @@ import {
|
||||
} from '@waha/apps/brazilian-phone-numbers/dto/config.dto';
|
||||
import { BrazilianPhoneCorePlugin } from '@waha/apps/brazilian-phone-numbers/plugins/BrazilianPhoneCorePlugin';
|
||||
import { BrazilianPhoneCacheRepository } from '@waha/apps/brazilian-phone-numbers/storage/BrazilianPhoneCacheRepository';
|
||||
import { AppName } from '@waha/apps/app_sdk/apps/name';
|
||||
import { AppName } from '@waha/apps/app_sdk/apps/apps';
|
||||
import { AppRepository } from '@waha/apps/app_sdk/storage/AppRepository';
|
||||
import { AppDB } from '@waha/apps/app_sdk/storage/types';
|
||||
import { SessionManager } from '@waha/core/abc/manager.abc';
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { AppModule } from '@waha/apps/app_sdk/apps/definition';
|
||||
import { AppName } from '@waha/apps/app_sdk/apps/name';
|
||||
import { AppName } from '@waha/apps/app_sdk/apps/apps';
|
||||
import { BrazilianPhoneNumbersController } from '@waha/apps/brazilian-phone-numbers/api/brazilian-phone-numbers.controller';
|
||||
import { BrazilianPhoneNumbersAppConfig } from '@waha/apps/brazilian-phone-numbers/dto/config.dto';
|
||||
import { BrazilianPhoneNumbersAppService } from '@waha/apps/brazilian-phone-numbers/services/BrazilianPhoneNumbersAppService';
|
||||
|
||||
const BrazilianPhoneNumbersAppModule: AppModule = {
|
||||
@@ -19,7 +18,6 @@ const BrazilianPhoneNumbersAppModule: AppModule = {
|
||||
providers: [BrazilianPhoneNumbersAppService],
|
||||
},
|
||||
Service: BrazilianPhoneNumbersAppService,
|
||||
ConfigClass: BrazilianPhoneNumbersAppConfig,
|
||||
};
|
||||
|
||||
export default BrazilianPhoneNumbersAppModule;
|
||||
@@ -1,6 +1,5 @@
|
||||
import { AppModule } from '@waha/apps/app_sdk/apps/definition';
|
||||
import { AppName } from '@waha/apps/app_sdk/apps/name';
|
||||
import { CallsAppConfig } from '@waha/apps/calls/dto/config.dto';
|
||||
import { AppName } from '@waha/apps/app_sdk/apps/apps';
|
||||
import { CallsAppService } from '@waha/apps/calls/services/CallsAppService';
|
||||
|
||||
const CallsAppModule: AppModule = {
|
||||
@@ -18,7 +17,6 @@ const CallsAppModule: AppModule = {
|
||||
providers: [CallsAppService],
|
||||
},
|
||||
Service: CallsAppService,
|
||||
ConfigClass: CallsAppConfig,
|
||||
};
|
||||
|
||||
export default CallsAppModule;
|
||||
@@ -1,7 +1,6 @@
|
||||
import { AppModule } from '@waha/apps/app_sdk/apps/definition';
|
||||
import { AppName } from '@waha/apps/app_sdk/apps/name';
|
||||
import { AppName } from '@waha/apps/app_sdk/apps/apps';
|
||||
import { RegisterAppQueue } from '@waha/apps/app_sdk/BullUtils';
|
||||
import { ChatWootAppConfig } from '@waha/apps/chatwoot/dto/config.dto';
|
||||
import {
|
||||
ExponentialRetriesJobOptions,
|
||||
JobRemoveOptions,
|
||||
@@ -178,7 +177,6 @@ const ChatWootAppModule: AppModule = {
|
||||
providers: PROVIDERS,
|
||||
},
|
||||
Service: ChatWootAppService,
|
||||
ConfigClass: ChatWootAppConfig,
|
||||
};
|
||||
|
||||
export default ChatWootAppModule;
|
||||
@@ -1,7 +1,6 @@
|
||||
import { AppModule } from '@waha/apps/app_sdk/apps/definition';
|
||||
import { AppName } from '@waha/apps/app_sdk/apps/name';
|
||||
import { AppName } from '@waha/apps/app_sdk/apps/apps';
|
||||
import { McpController } from '@waha/apps/mcp/api/mcp.controller';
|
||||
import { McpAppConfig } from '@waha/apps/mcp/dto/config.dto';
|
||||
import { McpService } from '@waha/apps/mcp/mcp.service';
|
||||
import { McpAppService } from '@waha/apps/mcp/services/McpAppService';
|
||||
|
||||
@@ -20,7 +19,6 @@ const McpAppModule: AppModule = {
|
||||
providers: [McpService, McpAppService],
|
||||
},
|
||||
Service: McpAppService,
|
||||
ConfigClass: McpAppConfig,
|
||||
};
|
||||
|
||||
export default McpAppModule;
|
||||
Reference in new issue
Block a user