@@ -5,17 +5,7 @@ var config = require('./config');
5
5
var _ = require ( 'lodash' ) ;
6
6
var hookUrl ;
7
7
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 = { }
19
9
20
10
var postMessage = function ( message , callback ) {
21
11
var body = JSON . stringify ( message ) ;
@@ -368,29 +358,36 @@ var processEvent = function(event, context) {
368
358
var slackMessage = null ;
369
359
var eventSubscriptionArn = event . Records [ 0 ] . EventSubscriptionArn ;
370
360
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
+ }
372
369
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 ) {
374
371
console . log ( "processing codepipeline notification" ) ;
375
372
slackMessage = handleCodePipeline ( event , context )
376
373
}
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 ) {
378
375
console . log ( "processing elasticbeanstalk notification" ) ;
379
376
slackMessage = handleElasticBeanstalk ( event , context )
380
377
}
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 ) {
382
379
console . log ( "processing cloudwatch notification" ) ;
383
380
slackMessage = handleCloudWatch ( event , context ) ;
384
381
}
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 ) {
386
383
console . log ( "processing codedeploy notification" ) ;
387
384
slackMessage = handleCodeDeploy ( event , context ) ;
388
385
}
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 ) {
390
387
console . log ( "processing elasticache notification" ) ;
391
388
slackMessage = handleElasticache ( event , context ) ;
392
389
}
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 ) {
394
391
console . log ( "processing autoscaling notification" ) ;
395
392
slackMessage = handleAutoScaling ( event , context ) ;
396
393
}
0 commit comments