Skip to content

Commit d38b5e1

Browse files
author
Attila Ujj
committed
BOT-1212-connector-directline-check-json - done
1 parent 93347d7 commit d38b5e1

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,11 @@ _default: {}_
166166

167167
JSON object holding the activity template used for sending activities to the bot.
168168

169+
### DIRECTLINE3_ACTIVITY_VALIDATION
170+
_default: 'error'
171+
172+
Set to 'warning' if you want to suppress activity validation errors.
173+
169174
# Current Restrictions
170175

171176
* Only HTTP Polling supported (WebSocket not available in Node.js)

index.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ const Capabilities = {
2626
DIRECTLINE3_BUTTON_VALUE_FIELD: 'DIRECTLINE3_BUTTON_VALUE_FIELD',
2727
DIRECTLINE3_HANDLE_ACTIVITY_TYPES: 'DIRECTLINE3_HANDLE_ACTIVITY_TYPES',
2828
DIRECTLINE3_ACTIVITY_VALUE_MAP: 'DIRECTLINE3_ACTIVITY_VALUE_MAP',
29-
DIRECTLINE3_ACTIVITY_TEMPLATE: 'DIRECTLINE3_ACTIVITY_TEMPLATE'
29+
DIRECTLINE3_ACTIVITY_TEMPLATE: 'DIRECTLINE3_ACTIVITY_TEMPLATE',
30+
DIRECTLINE3_ACTIVITY_VALIDATION: 'DIRECTLINE3_ACTIVITY_VALIDATION'
3031
}
3132

3233
const Defaults = {
@@ -36,6 +37,7 @@ const Defaults = {
3637
[Capabilities.DIRECTLINE3_BUTTON_TYPE]: 'event',
3738
[Capabilities.DIRECTLINE3_BUTTON_VALUE_FIELD]: 'name',
3839
[Capabilities.DIRECTLINE3_HANDLE_ACTIVITY_TYPES]: 'message',
40+
[Capabilities.DIRECTLINE3_ACTIVITY_VALIDATION]: 'error',
3941
[Capabilities.DIRECTLINE3_ACTIVITY_VALUE_MAP]: {
4042
event: 'name'
4143
}
@@ -330,6 +332,18 @@ class BotiumConnectorDirectline3 {
330332
})
331333
}
332334

335+
// validating the activity
336+
if (activity.text) {
337+
if (_.isObject(activity.text)) {
338+
const msg = `Activity is not correct. There is a JSON ${JSON.stringify(activity.text)} in text field. Check your capabilities`
339+
if (this.caps.DIRECTLINE3_ACTIVITY_VALIDATION === 'error') {
340+
reject(new Error(msg))
341+
} else {
342+
debug(msg)
343+
}
344+
}
345+
}
346+
333347
if (msg.media && msg.media.length > 0) {
334348
debug('Posting activity with attachments ', JSON.stringify(activity, null, 2))
335349
msg.sourceData = Object.assign(msg.sourceData || {}, { activity })

0 commit comments

Comments
 (0)