@@ -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
3233const 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