Skip to content

Commit cf408b6

Browse files
committed
use additional callback param
1 parent cb7d33a commit cf408b6

File tree

3 files changed

+7
-9
lines changed

3 files changed

+7
-9
lines changed

apps/meteor/ee/server/hooks/federation/index.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -252,18 +252,16 @@ callbacks.add(
252252
'federation-matrix-before-create-direct-room',
253253
);
254254

255-
callbacks.add('federation.beforeCreateDirectMessage', async (roomUsers) => {
255+
callbacks.add('federation.beforeCreateDirectMessage', async (roomUsers, extraData) => {
256256
// TODO: use a shared helper to check whether a user is federated
257257
// since the DM creation API doesn't tell us if the room is federated (unlike normal channels),
258258
// we're currently inferring it: if any participant has a Matrix-style ID (@user:server), we treat the DM as federated
259259
const hasFederatedMembers = roomUsers.some((user: unknown) => typeof user === 'string' && user.includes(':') && user.includes('@'));
260260

261261
if (hasFederatedMembers) {
262-
return {
263-
federated: true,
264-
federation: {
265-
version: 1,
266-
},
262+
extraData.federated = true;
263+
extraData.federation = {
264+
version: 1,
267265
};
268266
}
269267
});

apps/meteor/lib/callbacks.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ interface EventLikeCallbackSignatures {
7878
},
7979
) => void;
8080
'beforeCreateDirectRoom': (members: string[], room: IRoom) => void;
81-
'federation.beforeCreateDirectMessage': (members: IUser[]) => void;
81+
'federation.beforeCreateDirectMessage': (members: IUser[], extraData: Record<string, unknown>) => void;
8282
'afterSetReaction': (message: IMessage, params: { user: IUser; reaction: string; shouldReact: boolean; room: IRoom }) => void;
8383
'afterUnsetReaction': (
8484
message: IMessage,

apps/meteor/server/methods/createDirectMessage.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,10 @@ export async function createDirectMessage(
7474
options.subscriptionExtra = { open: true };
7575
}
7676

77-
let extraData = {};
77+
const extraData = {};
7878

7979
try {
80-
extraData = await callbacks.run('federation.beforeCreateDirectMessage', roomUsers);
80+
await callbacks.run('federation.beforeCreateDirectMessage', roomUsers, extraData);
8181
} catch (error) {
8282
throw new Meteor.Error((error as any)?.message);
8383
}

0 commit comments

Comments
 (0)