@@ -5,17 +5,7 @@ var config = require('./config');
55var _ = require ( 'lodash' ) ;
66var hookUrl ;
77
8- var baseSlackMessage = {
9- channel : config . slackChannel ,
10- username : config . slackUsername ,
11- icon_emoji : config . icon_emoji ,
12- attachments : [
13- {
14- "footer" : config . orgName ,
15- "footer_icon" : config . orgIcon
16- }
17- ]
18- }
8+ var baseSlackMessage = { }
199
2010var postMessage = function ( message , callback ) {
2111 var body = JSON . stringify ( message ) ;
@@ -368,29 +358,36 @@ var processEvent = function(event, context) {
368358 var slackMessage = null ;
369359 var eventSubscriptionArn = event . Records [ 0 ] . EventSubscriptionArn ;
370360 var eventSnsSubject = event . Records [ 0 ] . Sns . Subject || 'no subject' ;
371- var eventSnsMessage = event . Records [ 0 ] . Sns . Message ;
361+ var eventSnsMessageRaw = event . Records [ 0 ] . Sns . Message ;
362+ var eventSnsMessage = null ;
363+
364+ try {
365+ eventSnsMessage = JSON . parse ( eventSnsMessageRaw ) ;
366+ }
367+ catch ( e ) {
368+ }
372369
373- if ( eventSubscriptionArn . indexOf ( config . services . codepipeline . match_text ) > - 1 || eventSnsSubject . indexOf ( config . services . codepipeline . match_text ) > - 1 || eventSnsMessage . indexOf ( config . services . codepipeline . match_text ) > - 1 ) {
370+ if ( eventSubscriptionArn . indexOf ( config . services . codepipeline . match_text ) > - 1 || eventSnsSubject . indexOf ( config . services . codepipeline . match_text ) > - 1 || eventSnsMessageRaw . indexOf ( config . services . codepipeline . match_text ) > - 1 ) {
374371 console . log ( "processing codepipeline notification" ) ;
375372 slackMessage = handleCodePipeline ( event , context )
376373 }
377- else if ( eventSubscriptionArn . indexOf ( config . services . elasticbeanstalk . match_text ) > - 1 || eventSnsSubject . indexOf ( config . services . elasticbeanstalk . match_text ) > - 1 || eventSnsMessage . indexOf ( config . services . elasticbeanstalk . match_text ) > - 1 ) {
374+ else if ( eventSubscriptionArn . indexOf ( config . services . elasticbeanstalk . match_text ) > - 1 || eventSnsSubject . indexOf ( config . services . elasticbeanstalk . match_text ) > - 1 || eventSnsMessageRaw . indexOf ( config . services . elasticbeanstalk . match_text ) > - 1 ) {
378375 console . log ( "processing elasticbeanstalk notification" ) ;
379376 slackMessage = handleElasticBeanstalk ( event , context )
380377 }
381- else if ( eventSubscriptionArn . indexOf ( config . services . cloudwatch . match_text ) > - 1 || eventSnsSubject . indexOf ( config . services . cloudwatch . match_text ) > - 1 || eventSnsMessage . indexOf ( config . services . cloudwatch . match_text ) > - 1 ) {
378+ else if ( eventSnsMessage && 'AlarmName' in eventSnsMessage && 'AlarmDescription' in eventSnsMessage ) {
382379 console . log ( "processing cloudwatch notification" ) ;
383380 slackMessage = handleCloudWatch ( event , context ) ;
384381 }
385- else if ( eventSubscriptionArn . indexOf ( config . services . codedeploy . match_text ) > - 1 || eventSnsSubject . indexOf ( config . services . codedeploy . match_text ) > - 1 || eventSnsMessage . indexOf ( config . services . codedeploy . match_text ) > - 1 ) {
382+ else if ( eventSubscriptionArn . indexOf ( config . services . codedeploy . match_text ) > - 1 || eventSnsSubject . indexOf ( config . services . codedeploy . match_text ) > - 1 || eventSnsMessageRaw . indexOf ( config . services . codedeploy . match_text ) > - 1 ) {
386383 console . log ( "processing codedeploy notification" ) ;
387384 slackMessage = handleCodeDeploy ( event , context ) ;
388385 }
389- else if ( eventSubscriptionArn . indexOf ( config . services . elasticache . match_text ) > - 1 || eventSnsSubject . indexOf ( config . services . elasticache . match_text ) > - 1 || eventSnsMessage . indexOf ( config . services . elasticache . match_text ) > - 1 ) {
386+ else if ( eventSubscriptionArn . indexOf ( config . services . elasticache . match_text ) > - 1 || eventSnsSubject . indexOf ( config . services . elasticache . match_text ) > - 1 || eventSnsMessageRaw . indexOf ( config . services . elasticache . match_text ) > - 1 ) {
390387 console . log ( "processing elasticache notification" ) ;
391388 slackMessage = handleElasticache ( event , context ) ;
392389 }
393- else if ( eventSubscriptionArn . indexOf ( config . services . autoscaling . match_text ) > - 1 || eventSnsSubject . indexOf ( config . services . autoscaling . match_text ) > - 1 || eventSnsMessage . indexOf ( config . services . autoscaling . match_text ) > - 1 ) {
390+ else if ( eventSubscriptionArn . indexOf ( config . services . autoscaling . match_text ) > - 1 || eventSnsSubject . indexOf ( config . services . autoscaling . match_text ) > - 1 || eventSnsMessageRaw . indexOf ( config . services . autoscaling . match_text ) > - 1 ) {
394391 console . log ( "processing autoscaling notification" ) ;
395392 slackMessage = handleAutoScaling ( event , context ) ;
396393 }
0 commit comments