refactor Notifications

This commit is contained in:
alma 2026-01-16 00:53:21 +01:00
parent 2d35dbe074
commit 448ef06a26

View File

@ -88,6 +88,7 @@ export class RocketChatCallListener {
this.ws = new WebSocket(wsUrl);
this.ws.onopen = () => {
console.log('[ROCKETCHAT_CALL_LISTENER] ✅ WebSocket connected!');
logger.debug('[ROCKETCHAT_CALL_LISTENER] WebSocket connected');
this.isConnecting = false;
this.isConnected = true;
@ -96,7 +97,19 @@ export class RocketChatCallListener {
};
this.ws.onmessage = (event) => {
this.handleMessage(JSON.parse(event.data));
try {
const message = JSON.parse(event.data);
console.log('[ROCKETCHAT_CALL_LISTENER] 📨 Received WebSocket message:', {
msg: message.msg,
collection: message.collection,
id: message.id,
eventName: message.fields?.eventName,
fullMessage: message,
});
this.handleMessage(message);
} catch (error) {
console.error('[ROCKETCHAT_CALL_LISTENER] Error parsing message', error, event.data);
}
};
this.ws.onerror = (error) => {
@ -105,7 +118,12 @@ export class RocketChatCallListener {
this.isConnected = false;
};
this.ws.onclose = () => {
this.ws.onclose = (event) => {
console.log('[ROCKETCHAT_CALL_LISTENER] 🔌 WebSocket closed', {
code: event.code,
reason: event.reason,
wasClean: event.wasClean,
});
logger.debug('[ROCKETCHAT_CALL_LISTENER] WebSocket closed');
this.isConnected = false;
this.isConnecting = false;
@ -129,6 +147,11 @@ export class RocketChatCallListener {
*/
private authenticate(): void {
if (!this.ws || !this.authToken || !this.userId) {
console.warn('[ROCKETCHAT_CALL_LISTENER] Cannot authenticate - missing ws, token, or userId', {
hasWs: !!this.ws,
hasToken: !!this.authToken,
hasUserId: !!this.userId,
});
return;
}
@ -143,6 +166,11 @@ export class RocketChatCallListener {
],
};
console.log('[ROCKETCHAT_CALL_LISTENER] 🔐 Sending login message', {
method: 'login',
hasToken: !!this.authToken,
userId: this.userId,
});
logger.debug('[ROCKETCHAT_CALL_LISTENER] Sending login message');
this.ws.send(JSON.stringify(loginMessage));
}
@ -198,18 +226,32 @@ export class RocketChatCallListener {
private handleMessage(message: any): void {
// Handle login response
if (message.msg === 'result' && message.id?.startsWith('login-')) {
if (message.result?.token) {
console.log('[ROCKETCHAT_CALL_LISTENER] 📋 Login response received', {
success: !!message.result?.token,
error: message.error,
result: message.result,
});
if (message.result?.token || message.result) {
console.log('[ROCKETCHAT_CALL_LISTENER] ✅ Login successful!');
logger.debug('[ROCKETCHAT_CALL_LISTENER] Login successful');
this.subscribeToCalls();
} else {
console.error('[ROCKETCHAT_CALL_LISTENER] ❌ Login failed', message);
logger.error('[ROCKETCHAT_CALL_LISTENER] Login failed', { message });
}
return;
}
// Handle subscription ready
if (message.msg === 'ready' && message.subs?.includes(this.subscriptionId)) {
logger.debug('[ROCKETCHAT_CALL_LISTENER] Subscription ready');
if (message.msg === 'ready') {
console.log('[ROCKETCHAT_CALL_LISTENER] ✅ Subscription ready', {
subs: message.subs,
ourSubId: this.subscriptionId,
isOurSub: message.subs?.includes(this.subscriptionId),
});
if (message.subs?.includes(this.subscriptionId)) {
logger.debug('[ROCKETCHAT_CALL_LISTENER] Subscription ready');
}
return;
}
@ -246,13 +288,25 @@ export class RocketChatCallListener {
}
}
// Log all messages for debugging
if (message.msg && message.collection === 'stream-notify-user') {
console.log('[ROCKETCHAT_CALL_LISTENER] Stream notify user message:', {
// Log all stream-notify-user messages for debugging
if (message.collection === 'stream-notify-user') {
console.log('[ROCKETCHAT_CALL_LISTENER] 📢 Stream notify user message:', {
msg: message.msg,
collection: message.collection,
eventName: message.fields?.eventName,
hasArgs: !!(message.fields?.args && message.fields.args.length > 0),
argsCount: message.fields?.args?.length || 0,
fullFields: message.fields,
});
}
// Log ALL messages to see what we're receiving
if (message.msg) {
console.log('[ROCKETCHAT_CALL_LISTENER] 📬 All WebSocket message:', {
msg: message.msg,
collection: message.collection,
id: message.id,
method: message.method,
});
}
}