@@ -7,7 +7,7 @@ export default {
77 key : "zendesk-new-ticket-comment-added" ,
88 type : "source" ,
99 description : "Emit new event when a ticket comment has been added" ,
10- version : "0.0.3 " ,
10+ version : "0.1.0 " ,
1111 dedupe : "unique" ,
1212 props : {
1313 app,
@@ -59,9 +59,14 @@ export default {
5959 } ,
6060 convertCommentsToJson ( raw ) {
6161 return [
62- ...raw . matchAll ( / # < C o m m e n t ( .* ?) > / g) ,
62+ ...raw . matchAll ( / # < C o m m e n t ( .* ?) ( v a l u e : " [ ^ " ] * " ) ( . * ? ) > / g) ,
6363 ] . map ( ( match ) => {
64- const fields = match [ 1 ]
64+ const valueField = match [ 0 ] . match ( / (?< = , ) v a l u e : " ( [ ^ " ] | \\ " ) * [ ^ \\ ] " , / ) ?. [ 0 ] ;
65+ const baseMatch = match [ 0 ] . replace ( / ^ # < C o m m e n t / , "" ) ;
66+ const baseMatchWithoutValue = valueField
67+ ? baseMatch . split ( valueField ) . join ( "" )
68+ : baseMatch ;
69+ const fields = baseMatchWithoutValue
6570 . split ( "," )
6671 . map ( ( part ) => part . trim ( ) )
6772 . map ( ( pair ) => {
@@ -81,7 +86,15 @@ export default {
8186 cleaned ,
8287 ] ;
8388 } ) ;
84- return Object . fromEntries ( fields ) ;
89+ return Object . fromEntries ( valueField
90+ ? [
91+ ...fields ,
92+ [
93+ "value" ,
94+ valueField ?. replace ( / ^ v a l u e : ? / , "" ) ,
95+ ] ,
96+ ]
97+ : fields ) ;
8598 } ) ;
8699 } ,
87100 isRelevant ( payload ) {
@@ -97,10 +110,16 @@ export default {
97110 } ,
98111 emitEvent ( payload ) {
99112 payload . ticketComments = this . convertCommentsToJson ( payload . ticketComments ) ;
100- for ( const comment of payload . ticketComments ) {
113+ const {
114+ ticketComments, ...ticketData
115+ } = payload ;
116+ for ( const comment of ticketComments ) {
101117 const ts = Date . parse ( comment . created_at ) ;
102118 const id = `${ payload . ticketId } -${ ts } ` ;
103- this . $emit ( comment , {
119+ this . $emit ( {
120+ ...comment ,
121+ ticketData,
122+ } , {
104123 id,
105124 summary : comment . value ,
106125 ts,
0 commit comments