n8n-nodes-microsoft-teams-bot 1.3.5 → 1.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -98,26 +98,48 @@ class TeamsBot {
|
|
|
98
98
|
// Handle n8n waiting webhook (send-and-wait resume)
|
|
99
99
|
const query = req.query;
|
|
100
100
|
if (query.responded === 'true') {
|
|
101
|
-
this.logger.info('[TeamsBot] Send-and-wait webhook triggered - resuming execution'
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
101
|
+
this.logger.info('[TeamsBot] Send-and-wait webhook triggered - resuming execution', {
|
|
102
|
+
decision: query.decision,
|
|
103
|
+
source: query.source,
|
|
104
|
+
});
|
|
105
|
+
const decision = typeof query.decision === 'string' ? query.decision : undefined;
|
|
106
|
+
const source = typeof query.source === 'string' ? query.source : undefined;
|
|
107
|
+
const decisionLabel = decision === 'approved'
|
|
108
|
+
? 'Approved'
|
|
109
|
+
: decision === 'declined'
|
|
110
|
+
? 'Declined'
|
|
111
|
+
: undefined;
|
|
112
|
+
const decisionLine = decisionLabel
|
|
113
|
+
? `<p><strong>Decision:</strong> ${decisionLabel}</p>`
|
|
114
|
+
: '';
|
|
115
|
+
const htmlPage = `
|
|
116
|
+
<!DOCTYPE html>
|
|
117
|
+
<html>
|
|
118
|
+
<head>
|
|
119
|
+
<title>Decision recorded</title>
|
|
120
|
+
<style>
|
|
121
|
+
body { font-family: Arial, sans-serif; text-align: center; padding: 40px; color: #333333; }
|
|
122
|
+
h1 { color: #107C41; font-size: 24px; margin-bottom: 16px; }
|
|
123
|
+
p { font-size: 14px; margin: 4px 0; }
|
|
124
|
+
</style>
|
|
125
|
+
</head>
|
|
126
|
+
<body>
|
|
127
|
+
<h1>Thank you, your response has been recorded.</h1>
|
|
128
|
+
${decisionLine}
|
|
129
|
+
<p>You can now close this window and return to Microsoft Teams.</p>
|
|
130
|
+
</body>
|
|
131
|
+
</html>
|
|
117
132
|
`;
|
|
118
133
|
return {
|
|
119
134
|
webhookResponse: htmlPage,
|
|
120
|
-
workflowData: [[{
|
|
135
|
+
workflowData: [[{
|
|
136
|
+
json: {
|
|
137
|
+
responded: true,
|
|
138
|
+
decision,
|
|
139
|
+
source,
|
|
140
|
+
timestamp: new Date().toISOString(),
|
|
141
|
+
},
|
|
142
|
+
}]],
|
|
121
143
|
};
|
|
122
144
|
}
|
|
123
145
|
// Handle Graph API validation token
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TeamsBot.node.js","sourceRoot":"","sources":["../../../nodes/TeamsBot/TeamsBot.node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,6CAA0C;AAC1C,iEAAmD;AACnD,6DAA+D;AAC/D,sEAAqF;AACrF,6CAA6E;AAC7E,6EAA0E;AAC1E,mEAAsE;AAEtE,MAAa,QAAQ;IAGnB,YAAY,eAAyC;QA2BrD,YAAO,GAAG;YACR,UAAU;YACV,cAAc,EAAE;gBACd,mBAAmB,EAAnB,oCAAmB;aACpB;SACF,CAAC;QAMF,mBAAc,GAAG;YACf,OAAO,EAAE;gBACP,KAAK,CAAC,WAAW;oBACf,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAW,CAAC;oBAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAgB,CAAC;oBACzE,cAAc,CAAC,UAAU,GAAG,UAAU,CAAC;oBAEvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2DAA2D,EAAE;wBAC5E,UAAU;qBACX,CAAC,CAAC;oBAEH,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,KAAK,CAAC,MAAM;oBACV,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAW,CAAC;oBAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAgB,CAAC;oBACzE,cAAc,CAAC,UAAU,GAAG,UAAU,CAAC;oBAEvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;oBAC9E,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,KAAK,CAAC,MAAM;oBACV,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAgB,CAAC;oBACzE,OAAO,cAAc,CAAC,UAAU,CAAC;oBACjC,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;SACF,CAAC;QAhEA,MAAM,QAAQ,GAAG,8BAAmB,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG;YACjB,GAAG,eAAe;YAClB,GAAG,QAAQ;YACX,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC;YAC9B,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE,KAAK;oBACjB,YAAY,EAAE,YAAY;oBAC1B,IAAI,EAAE,gBAAgB;oBACtB,cAAc,EAAE,IAAI;oBACpB,UAAU,EAAE,IAAI;iBACjB;gBACD;oBACE,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE,MAAM;oBAClB,YAAY,EAAE,YAAY;oBAC1B,IAAI,EAAE,gBAAgB;oBACtB,cAAc,EAAE,IAAI;oBACpB,UAAU,EAAE,IAAI;iBACjB;aACF;SACsB,CAAC;IAC5B,CAAC;IASD,KAAK,CAAC,OAAO;QACX,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IA+BD,KAAK,CAAC,OAAO;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAErC,oDAAoD;QACpD,MAAM,KAAK,GAAG,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"TeamsBot.node.js","sourceRoot":"","sources":["../../../nodes/TeamsBot/TeamsBot.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,7 @@ async function getChatIdForUser(graphClient, targetUserId, api, teamsAppId) {
|
|
|
35
35
|
return chat.id;
|
|
36
36
|
}
|
|
37
37
|
async function sendAndWaitOperation() {
|
|
38
|
+
var _a, _b;
|
|
38
39
|
const items = this.getInputData();
|
|
39
40
|
if (items.length > 1) {
|
|
40
41
|
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Teams Send and Wait currently supports only a single item per execution. Please process items one at a time.');
|
|
@@ -52,21 +53,125 @@ async function sendAndWaitOperation() {
|
|
|
52
53
|
messageLength: message.length,
|
|
53
54
|
});
|
|
54
55
|
const nodeOptions = this.getNodeParameter('options', i, {});
|
|
55
|
-
|
|
56
|
-
const
|
|
57
|
-
|
|
56
|
+
// Approval options: determine whether to render Approve / Decline buttons
|
|
57
|
+
const rawApprovalOptions = this.getNodeParameter('approvalOptions', i, {});
|
|
58
|
+
const approvalValues = (_a = rawApprovalOptions === null || rawApprovalOptions === void 0 ? void 0 : rawApprovalOptions.values) !== null && _a !== void 0 ? _a : rawApprovalOptions;
|
|
59
|
+
const approvalType = ((_b = approvalValues === null || approvalValues === void 0 ? void 0 : approvalValues.approvalType) !== null && _b !== void 0 ? _b : 'single');
|
|
60
|
+
const approveLabel = (approvalValues === null || approvalValues === void 0 ? void 0 : approvalValues.approveLabel) || '✓ Approve';
|
|
61
|
+
const disapproveLabel = approvalType === 'double'
|
|
62
|
+
? (approvalValues === null || approvalValues === void 0 ? void 0 : approvalValues.disapproveLabel) || '✗ Decline'
|
|
63
|
+
: undefined;
|
|
64
|
+
// Generate signed resume URLs for quick link-click responses
|
|
58
65
|
this.setSignatureValidationRequired();
|
|
59
66
|
const resumeUrl = this.getSignedResumeUrl({ responded: 'true', source: 'link' });
|
|
60
|
-
|
|
67
|
+
const approveUrl = this.getSignedResumeUrl({
|
|
68
|
+
responded: 'true',
|
|
69
|
+
source: 'button',
|
|
70
|
+
decision: 'approved',
|
|
71
|
+
});
|
|
72
|
+
const declineUrl = approvalType === 'double'
|
|
73
|
+
? this.getSignedResumeUrl({
|
|
74
|
+
responded: 'true',
|
|
75
|
+
source: 'button',
|
|
76
|
+
decision: 'declined',
|
|
77
|
+
})
|
|
78
|
+
: undefined;
|
|
79
|
+
console.log('[TeamsBot][SendAndWait] Generated signed resume URLs', {
|
|
61
80
|
resumeUrl: resumeUrl.substring(0, 50) + '...',
|
|
81
|
+
hasApproveUrl: !!approveUrl,
|
|
82
|
+
hasDeclineUrl: !!declineUrl,
|
|
83
|
+
approvalType,
|
|
84
|
+
});
|
|
85
|
+
const credentials = (await this.getCredentials('teamsBotApi'));
|
|
86
|
+
const graphClient = new index_1.GraphApiClient(this, credentials);
|
|
87
|
+
// Construct webhook URL for Graph API subscriptions
|
|
88
|
+
// Use the same webhook mechanism as the link-click URL
|
|
89
|
+
const baseUrl = this.getInstanceBaseUrl();
|
|
90
|
+
const nodeId = this.getNode().id;
|
|
91
|
+
const webhookUrl = `${baseUrl}/webhook/${nodeId}`;
|
|
92
|
+
this.logger.info('[TeamsBot][SendAndWait] Constructed webhook URL for Graph notifications', {
|
|
93
|
+
webhookUrl,
|
|
94
|
+
baseUrl,
|
|
95
|
+
nodeId,
|
|
96
|
+
});
|
|
97
|
+
// Test webhook accessibility before creating subscription to determine mode:
|
|
98
|
+
// - 200 + echo token => hybrid mode (Graph subscriptions + link)
|
|
99
|
+
// - 404 => click-to-run-only (link-only, no Graph subscription)
|
|
100
|
+
// - other / bad body => treat as misconfiguration and error
|
|
101
|
+
this.logger.info('[TeamsBot][SendAndWait] Testing webhook accessibility', {
|
|
102
|
+
webhookUrl,
|
|
62
103
|
});
|
|
63
|
-
let
|
|
64
|
-
|
|
65
|
-
|
|
104
|
+
let useGraphSubscription = false;
|
|
105
|
+
try {
|
|
106
|
+
const testToken = `test_validation_${Date.now()}`;
|
|
107
|
+
const testUrl = `${webhookUrl}?validationToken=${encodeURIComponent(testToken)}`;
|
|
108
|
+
const testResponse = await this.helpers.httpRequest({
|
|
109
|
+
method: 'POST',
|
|
110
|
+
url: testUrl,
|
|
111
|
+
timeout: 5000,
|
|
112
|
+
returnFullResponse: true,
|
|
113
|
+
ignoreHttpStatusErrors: true,
|
|
114
|
+
});
|
|
115
|
+
if (testResponse.statusCode === 200 && testResponse.body === testToken) {
|
|
116
|
+
this.logger.info('[TeamsBot][SendAndWait] Webhook validation test passed (hybrid mode enabled)');
|
|
117
|
+
useGraphSubscription = true;
|
|
118
|
+
}
|
|
119
|
+
else if (testResponse.statusCode === 404) {
|
|
120
|
+
this.logger.info('[TeamsBot][SendAndWait] Webhook not available (404); falling back to link-only send-and-wait (no Graph subscription)', {
|
|
121
|
+
webhookUrl,
|
|
122
|
+
statusCode: testResponse.statusCode,
|
|
123
|
+
});
|
|
124
|
+
useGraphSubscription = false;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Webhook validation test failed: Expected status 200 with echoed token, got status ${testResponse.statusCode} and body "${testResponse.body}".\n\n` +
|
|
128
|
+
`The webhook must respond with HTTP 200 and return the validation token as plain text for Graph API subscription validation.\n` +
|
|
129
|
+
`Webhook URL: ${webhookUrl}`, { itemIndex: i });
|
|
130
|
+
}
|
|
66
131
|
}
|
|
67
|
-
|
|
68
|
-
|
|
132
|
+
catch (error) {
|
|
133
|
+
if (error instanceof n8n_workflow_1.NodeOperationError) {
|
|
134
|
+
throw error;
|
|
135
|
+
}
|
|
136
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
137
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Webhook is not accessible for Graph API subscription validation.\n\n` +
|
|
138
|
+
`Error: ${message}\n\n` +
|
|
139
|
+
`Webhook URL: ${webhookUrl}\n\n` +
|
|
140
|
+
`To fix this:\n` +
|
|
141
|
+
`1. Ensure n8n is accessible from the internet\n` +
|
|
142
|
+
`2. Check firewall settings\n` +
|
|
143
|
+
`3. Verify the webhook URL is correct`, { itemIndex: i });
|
|
69
144
|
}
|
|
145
|
+
const buildHtmlContent = () => {
|
|
146
|
+
const baseMessage = message;
|
|
147
|
+
// No approval configuration: fall back to original simple footer
|
|
148
|
+
if (!approvalValues || !approvalValues.approvalType) {
|
|
149
|
+
let html = baseMessage;
|
|
150
|
+
if (nodeOptions.appendAttribution !== false) {
|
|
151
|
+
html += `<br><br><em>Reply to this message or <a href="${resumeUrl}">click here</a> to respond</em>`;
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
html += `<br><a href="${resumeUrl}">Click here to respond</a>`;
|
|
155
|
+
}
|
|
156
|
+
return html;
|
|
157
|
+
}
|
|
158
|
+
let html = `${baseMessage}`;
|
|
159
|
+
html += '<br><br><strong>Choose an option:</strong><br>';
|
|
160
|
+
html += `<a href="${approveUrl}">${approveLabel}</a>`;
|
|
161
|
+
if (approvalType === 'double' && declineUrl) {
|
|
162
|
+
// Use a simple text separator so it renders consistently in Teams
|
|
163
|
+
html += ` | <a href="${declineUrl}">${disapproveLabel}</a>`;
|
|
164
|
+
}
|
|
165
|
+
const helperText = useGraphSubscription
|
|
166
|
+
? 'You can reply directly in this chat, or use the options above.'
|
|
167
|
+
: 'Use the options above to respond. Replies typed in this chat are not monitored by this workflow.';
|
|
168
|
+
html += `<br><span style="font-size:12px;color:#666666;">${helperText}</span>`;
|
|
169
|
+
if (nodeOptions.appendAttribution !== false) {
|
|
170
|
+
html += `<br><span style="font-size:11px;color:#999999;"><em>This message was sent automatically with n8n</em></span>`;
|
|
171
|
+
}
|
|
172
|
+
return html;
|
|
173
|
+
};
|
|
174
|
+
const htmlContent = buildHtmlContent();
|
|
70
175
|
const options = {
|
|
71
176
|
textFormat: 'xml',
|
|
72
177
|
};
|
|
@@ -114,57 +219,6 @@ async function sendAndWaitOperation() {
|
|
|
114
219
|
if (!originalMessageId) {
|
|
115
220
|
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Failed to get message ID from response', { itemIndex: i });
|
|
116
221
|
}
|
|
117
|
-
// Construct webhook URL for Graph API subscriptions
|
|
118
|
-
// Use the same webhook mechanism as the link-click URL
|
|
119
|
-
const baseUrl = this.getInstanceBaseUrl();
|
|
120
|
-
const nodeId = this.getNode().id;
|
|
121
|
-
const webhookUrl = `${baseUrl}/webhook/${nodeId}`;
|
|
122
|
-
this.logger.info('[TeamsBot][SendAndWait] Constructed webhook URL for Graph notifications', {
|
|
123
|
-
webhookUrl,
|
|
124
|
-
baseUrl,
|
|
125
|
-
nodeId,
|
|
126
|
-
});
|
|
127
|
-
// Test webhook accessibility before creating subscription to ensure
|
|
128
|
-
// Microsoft Graph validation requests will succeed
|
|
129
|
-
this.logger.info('[TeamsBot][SendAndWait] Testing webhook accessibility', {
|
|
130
|
-
webhookUrl,
|
|
131
|
-
});
|
|
132
|
-
try {
|
|
133
|
-
const testToken = `test_validation_${Date.now()}`;
|
|
134
|
-
const testUrl = `${webhookUrl}?validationToken=${encodeURIComponent(testToken)}`;
|
|
135
|
-
const testResponse = await this.helpers.httpRequest({
|
|
136
|
-
method: 'POST',
|
|
137
|
-
url: testUrl,
|
|
138
|
-
timeout: 5000,
|
|
139
|
-
returnFullResponse: true,
|
|
140
|
-
ignoreHttpStatusErrors: true,
|
|
141
|
-
});
|
|
142
|
-
if (testResponse.statusCode !== 200) {
|
|
143
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Webhook validation test failed: Expected status 200, got ${testResponse.statusCode}.\n\n` +
|
|
144
|
-
`The webhook must respond with HTTP 200 for Graph API subscription validation.\n` +
|
|
145
|
-
`Webhook URL: ${webhookUrl}`, { itemIndex: i });
|
|
146
|
-
}
|
|
147
|
-
if (testResponse.body !== testToken) {
|
|
148
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Webhook validation test failed: Response body doesn't match validation token.\n\n` +
|
|
149
|
-
`Expected: "${testToken}"\n` +
|
|
150
|
-
`Got: "${testResponse.body}"\n\n` +
|
|
151
|
-
`The webhook must return the validation token as plain text.`, { itemIndex: i });
|
|
152
|
-
}
|
|
153
|
-
this.logger.info('[TeamsBot][SendAndWait] Webhook validation test passed');
|
|
154
|
-
}
|
|
155
|
-
catch (error) {
|
|
156
|
-
if (error instanceof n8n_workflow_1.NodeOperationError) {
|
|
157
|
-
throw error;
|
|
158
|
-
}
|
|
159
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
160
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Webhook is not accessible for Graph API subscription validation.\n\n` +
|
|
161
|
-
`Error: ${message}\n\n` +
|
|
162
|
-
`Webhook URL: ${webhookUrl}\n\n` +
|
|
163
|
-
`To fix this:\n` +
|
|
164
|
-
`1. Ensure n8n is accessible from the internet\n` +
|
|
165
|
-
`2. Check firewall settings\n` +
|
|
166
|
-
`3. Verify the webhook URL is correct`, { itemIndex: i });
|
|
167
|
-
}
|
|
168
222
|
const workflowStaticData = this.getWorkflowStaticData('global');
|
|
169
223
|
if (!workflowStaticData.sendAndWaitExecutions) {
|
|
170
224
|
workflowStaticData.sendAndWaitExecutions = {};
|
|
@@ -175,62 +229,70 @@ async function sendAndWaitOperation() {
|
|
|
175
229
|
const waitTill = new Date(Date.now() + cappedTimeout * 1000);
|
|
176
230
|
const expirationDateTime = new Date(Date.now() + (cappedTimeout + 60) * 1000);
|
|
177
231
|
const subscriptionExpiration = expirationDateTime.toISOString();
|
|
178
|
-
// Create Graph API subscription to listen for message replies
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
232
|
+
// Create Graph API subscription to listen for message replies (hybrid mode only)
|
|
233
|
+
if (useGraphSubscription) {
|
|
234
|
+
const initialClientState = `sendAndWait_temp_${originalMessageId}_${Date.now()}`;
|
|
235
|
+
const subscriptionParams = {
|
|
236
|
+
changeType: 'created',
|
|
237
|
+
notificationUrl: webhookUrl,
|
|
238
|
+
resource,
|
|
239
|
+
includeResourceData: false,
|
|
240
|
+
expirationDateTime: subscriptionExpiration,
|
|
241
|
+
clientState: initialClientState,
|
|
242
|
+
};
|
|
243
|
+
console.log('[TeamsBot][SendAndWait] Creating Graph subscription', {
|
|
244
|
+
resource,
|
|
245
|
+
notificationUrl: webhookUrl,
|
|
246
|
+
expirationDateTime: subscriptionExpiration,
|
|
247
|
+
cappedTimeout,
|
|
248
|
+
originalTimeout: timeout,
|
|
249
|
+
note: 'Graph will now send validation request to webhook',
|
|
250
|
+
});
|
|
251
|
+
let subscription;
|
|
252
|
+
try {
|
|
253
|
+
subscription = await graphClient.createSubscription(subscriptionParams);
|
|
254
|
+
console.log('[TeamsBot][SendAndWait] Subscription created successfully', {
|
|
255
|
+
subscriptionId: subscription.id,
|
|
256
|
+
note: 'Validation succeeded',
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
catch (error) {
|
|
260
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
261
|
+
console.error('[TeamsBot][SendAndWait] Subscription creation failed', {
|
|
262
|
+
error: message,
|
|
263
|
+
webhookUrl,
|
|
264
|
+
note: 'Check if webhook validation failed at Microsoft Graph',
|
|
265
|
+
});
|
|
266
|
+
throw error;
|
|
267
|
+
}
|
|
268
|
+
const finalClientState = `sendAndWait_${subscription.id}_${originalMessageId}`;
|
|
269
|
+
await graphClient.updateSubscription(subscription.id, {
|
|
270
|
+
clientState: finalClientState,
|
|
271
|
+
});
|
|
272
|
+
console.log('[TeamsBot][SendAndWait] Updated subscription clientState', {
|
|
200
273
|
subscriptionId: subscription.id,
|
|
201
|
-
|
|
274
|
+
clientState: finalClientState,
|
|
275
|
+
});
|
|
276
|
+
const executionKey = `${subscription.id}_${originalMessageId}`;
|
|
277
|
+
workflowStaticData.sendAndWaitExecutions[executionKey] = {
|
|
278
|
+
subscriptionId: subscription.id,
|
|
279
|
+
originalMessageId,
|
|
280
|
+
resource,
|
|
281
|
+
recipientType,
|
|
282
|
+
createdAt: Date.now(),
|
|
283
|
+
expiresAt: waitTill.getTime(),
|
|
284
|
+
};
|
|
285
|
+
console.log('[TeamsBot][SendAndWait] Stored send-and-wait execution context', {
|
|
286
|
+
executionKey,
|
|
287
|
+
expiresAt: new Date(waitTill.getTime()).toISOString(),
|
|
202
288
|
});
|
|
203
289
|
}
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
console.error('[TeamsBot][SendAndWait] Subscription creation failed', {
|
|
207
|
-
error: message,
|
|
290
|
+
else {
|
|
291
|
+
console.log('[TeamsBot][SendAndWait] Skipping Graph subscription creation (link-only send-and-wait mode)', {
|
|
208
292
|
webhookUrl,
|
|
209
|
-
|
|
293
|
+
mode: 'link-only',
|
|
210
294
|
});
|
|
211
|
-
throw error;
|
|
212
295
|
}
|
|
213
|
-
const finalClientState = `sendAndWait_${subscription.id}_${originalMessageId}`;
|
|
214
|
-
await graphClient.updateSubscription(subscription.id, {
|
|
215
|
-
clientState: finalClientState,
|
|
216
|
-
});
|
|
217
|
-
console.log('[TeamsBot][SendAndWait] Updated subscription clientState', {
|
|
218
|
-
subscriptionId: subscription.id,
|
|
219
|
-
clientState: finalClientState,
|
|
220
|
-
});
|
|
221
|
-
const executionKey = `${subscription.id}_${originalMessageId}`;
|
|
222
|
-
workflowStaticData.sendAndWaitExecutions[executionKey] = {
|
|
223
|
-
subscriptionId: subscription.id,
|
|
224
|
-
originalMessageId,
|
|
225
|
-
resource,
|
|
226
|
-
recipientType,
|
|
227
|
-
createdAt: Date.now(),
|
|
228
|
-
expiresAt: waitTill.getTime(),
|
|
229
|
-
};
|
|
230
|
-
console.log('[TeamsBot][SendAndWait] Stored send-and-wait execution context', {
|
|
231
|
-
executionKey,
|
|
232
|
-
expiresAt: new Date(waitTill.getTime()).toISOString(),
|
|
233
|
-
});
|
|
234
296
|
console.log('[TeamsBot][SendAndWait] Putting execution to wait', {
|
|
235
297
|
waitTill: waitTill.toISOString(),
|
|
236
298
|
cappedTimeout,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.sendAndWait.js","sourceRoot":"","sources":["../../../../nodes/TeamsBot/actions/messages.sendAndWait.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"messages.sendAndWait.js","sourceRoot":"","sources":["../../../../nodes/TeamsBot/actions/messages.sendAndWait.ts"],"names":[],"mappings":"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"}
|