Skip to content

Commit

Permalink
fix: fix conflict
Browse files Browse the repository at this point in the history
  • Loading branch information
MarcosSpessatto committed May 31, 2022
1 parent 9c1d24c commit e2fc790
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { IMessage, IRoom, IUser } from '@rocket.chat/core-typings';
import { FederatedRoom } from '../domain/FederatedRoom';
import { FederatedUser } from '../domain/FederatedUser';
import { IFederationBridge } from '../domain/IFederationBridge';
import { RocketChatNotificationAdapter } from '../infrastructure/rocket-chat/adapters/Notification';
import { RocketChatRoomAdapter } from '../infrastructure/rocket-chat/adapters/Room';
import { RocketChatSettingsAdapter } from '../infrastructure/rocket-chat/adapters/Settings';
import { RocketChatUserAdapter } from '../infrastructure/rocket-chat/adapters/User';
Expand All @@ -14,6 +15,7 @@ export class FederationRoomServiceSender {
private rocketRoomAdapter: RocketChatRoomAdapter,
private rocketUserAdapter: RocketChatUserAdapter,
private rocketSettingsAdapter: RocketChatSettingsAdapter,
private rocketNotificationAdapter: RocketChatNotificationAdapter,
private bridge: IFederationBridge,
) {} // eslint-disable-line no-empty-function

Expand Down Expand Up @@ -85,7 +87,14 @@ export class FederationRoomServiceSender {
await this.bridge.inviteToRoom(federatedRoom.externalId, federatedInviterUser.externalId, federatedInviteeUser.externalId);
await this.bridge.joinRoom(federatedRoom.externalId, federatedInviteeUser.externalId);
} else if (!wasInvitedWhenTheRoomWasCreated) {
this.bridge.inviteToRoom(federatedRoom.externalId, federatedInviterUser.externalId, federatedInviteeUser.externalId);
this.bridge.inviteToRoom(federatedRoom.externalId, federatedInviterUser.externalId, federatedInviteeUser.externalId).catch(() => {
this.rocketNotificationAdapter.notifyWithEphemeralMessage(
'Federation_Matrix_only_owners_can_invite_users',
federatedInviterUser?.internalReference?._id,
internalRoomId,
federatedInviterUser?.internalReference?.language,
);
});
}
await this.rocketRoomAdapter.addUserToRoom(federatedRoom, federatedInviteeUser, federatedInviterUser);
}
Expand Down
2 changes: 2 additions & 0 deletions apps/meteor/app/federation-v2/server/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ const federation = FederationFactory.buildBridge(rocketSettingsAdapter, queueIns
const rocketRoomAdapter = FederationFactory.buildRocketRoomAdapter();
const rocketUserAdapter = FederationFactory.buildRocketUserAdapter();
const rocketMessageAdapter = FederationFactory.buildRocketMessageAdapter();
const rocketNotificationAdapter = FederationFactory.buildRocketNotificationdapter();

const federationRoomServiceReceiver = FederationFactory.buildRoomServiceReceiver(
rocketRoomAdapter,
Expand All @@ -23,6 +24,7 @@ export const federationRoomServiceSender = FederationFactory.buildRoomServiceSen
rocketRoomAdapter,
rocketUserAdapter,
rocketSettingsAdapter,
rocketNotificationAdapter,
federation,
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import { RocketChatRoomAdapter } from './rocket-chat/adapters/Room';
import { RocketChatSettingsAdapter } from './rocket-chat/adapters/Settings';
import { RocketChatUserAdapter } from './rocket-chat/adapters/User';
import { IFederationBridge } from '../domain/IFederationBridge';
import { RocketChatNotificationAdapter } from './rocket-chat/adapters/Notification';

export class FederationFactory {
public static buildRocketSettingsAdapter(): RocketChatSettingsAdapter {
Expand All @@ -34,6 +35,10 @@ export class FederationFactory {
return new RocketChatMessageAdapter();
}

public static buildRocketNotificationdapter(): RocketChatNotificationAdapter {
return new RocketChatNotificationAdapter();
}

public static buildQueue(): InMemoryQueue {
return new InMemoryQueue();
}
Expand All @@ -52,9 +57,10 @@ export class FederationFactory {
rocketRoomAdapter: RocketChatRoomAdapter,
rocketUserAdapter: RocketChatUserAdapter,
rocketSettingsAdapter: RocketChatSettingsAdapter,
rocketNotificationAdapter: RocketChatNotificationAdapter,
bridge: IFederationBridge,
): FederationRoomServiceSender {
return new FederationRoomServiceSender(rocketRoomAdapter, rocketUserAdapter, rocketSettingsAdapter, bridge);
return new FederationRoomServiceSender(rocketRoomAdapter, rocketUserAdapter, rocketSettingsAdapter, rocketNotificationAdapter, bridge);
}

public static buildBridge(rocketSettingsAdapter: RocketChatSettingsAdapter, queue: InMemoryQueue): IFederationBridge {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { TAPi18n } from 'meteor/rocketchat:tap-i18n';

import { api } from '../../../../../../server/sdk/api';

export class RocketChatNotificationAdapter {
public notifyWithEphemeralMessage(i18nMessageKey: string, userId: string, roomId: string, language = 'en'): void {
api.broadcast('notify.ephemeralMessage', userId, roomId, {
msg: TAPi18n.__(i18nMessageKey, {
postProcess: 'sprintf',
lng: language,
}),
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -158,12 +158,14 @@ export class RocketChatSettingsAdapter {
type: 'string',
i18nLabel: 'Federation_Matrix_homeserver_url',
i18nDescription: 'Federation_Matrix_homeserver_url_desc',
alert: 'Federation_Matrix_homeserver_url_alert',
});

this.add('Federation_Matrix_homeserver_domain', 'local.rocket.chat', {
type: 'string',
i18nLabel: 'Federation_Matrix_homeserver_domain',
i18nDescription: 'Federation_Matrix_homeserver_domain_desc',
alert: 'Federation_Matrix_homeserver_domain_alert',
});

this.add('Federation_Matrix_bridge_url', 'http://host.docker.internal:3300', {
Expand Down

0 comments on commit e2fc790

Please sign in to comment.