@@ -2,20 +2,23 @@ import { License } from '@rocket.chat/core-services';
22import { Emitter } from '@rocket.chat/emitter' ;
33import type { HomeserverEventSignatures } from '@rocket.chat/federation-sdk' ;
44import { ConfigService , createFederationContainer } from '@rocket.chat/federation-sdk' ;
5+ import { Logger } from '@rocket.chat/logger' ;
56import { Settings } from '@rocket.chat/models' ;
67
78import { registerEvents } from './events' ;
89
10+ const logger = new Logger ( 'FederationSetup' ) ;
11+
912function validateDomain ( domain : string ) : boolean {
1013 const value = domain . trim ( ) ;
1114
1215 if ( ! value ) {
13- console . error ( 'The Federation domain is not set' ) ;
16+ logger . error ( 'The Federation domain is not set' ) ;
1417 return false ;
1518 }
1619
1720 if ( value . toLowerCase ( ) !== value ) {
18- console . error ( `The Federation domain "${ value } " cannot have uppercase letters` ) ;
21+ logger . error ( `The Federation domain "${ value } " cannot have uppercase letters` ) ;
1922 return false ;
2023 }
2124
@@ -26,23 +29,17 @@ function validateDomain(domain: string): boolean {
2629 throw new Error ( ) ;
2730 }
2831 } catch {
29- console . error ( `The configured Federation domain "${ value } " is not valid` ) ;
32+ logger . error ( `The configured Federation domain "${ value } " is not valid` ) ;
3033 return false ;
3134 }
3235
3336 return true ;
3437}
3538
36- export async function setupFederationMatrix ( instanceId : string ) : Promise < void > {
39+ export async function setupFederationMatrix ( instanceId : string ) : Promise < boolean > {
3740 const settingEnabled = ( await Settings . getValueById < boolean > ( 'Federation_Service_Enabled' ) ) || false ;
3841 const serverName = ( await Settings . getValueById < string > ( 'Federation_Service_Domain' ) ) || '' ;
3942
40- const serviceEnabled = ( await License . hasModule ( 'federation' ) ) && settingEnabled && validateDomain ( serverName ) ;
41- if ( ! serviceEnabled ) {
42- console . log ( 'Federation service is disabled' ) ;
43- return ;
44- }
45-
4643 const processEDUTyping = ( await Settings . getValueById < boolean > ( 'Federation_Service_EDU_Process_Typing' ) ) || false ;
4744 const processEDUPresence = ( await Settings . getValueById < boolean > ( 'Federation_Service_EDU_Process_Presence' ) ) || false ;
4845 const signingKey = ( await Settings . getValueById < string > ( 'Federation_Service_Matrix_Signing_Key' ) ) || '' ;
@@ -97,8 +94,15 @@ export async function setupFederationMatrix(instanceId: string): Promise<void> {
9794 config ,
9895 ) ;
9996
97+ const serviceEnabled = ( await License . hasModule ( 'federation' ) ) && settingEnabled && validateDomain ( serverName ) ;
98+ if ( ! serviceEnabled ) {
99+ return false ;
100+ }
101+
100102 registerEvents ( eventHandler , serverName , {
101103 typing : processEDUTyping ,
102104 presence : processEDUPresence ,
103105 } ) ;
106+
107+ return true ;
104108}
0 commit comments