public static Channel teamEmailChannel() { return EmailChannel.builder() .channelName("My Team - email") .emailAddress("my-team@my-company.com") .includeJsonAttachment(true) .build(); }
public static Channel slackChannel() { return SlackChannel.builder() .channelName("My Team - slack") .slackUrl("https://hooks.slack.com/services/aaaaaaaaa/bbbbbbbbb/cccccccccccccccccccccccc") .teamChannel("newrelic-alerts") .build(); } }
private AlertsChannel toAlertsChannel(Channel channel) { return AlertsChannel.builder() .name(channel.getChannelName()) .type(channel.getTypeString()) .configuration(channel.getChannelTypeSupport().generateAlertsChannelConfiguration(api)) .build(); }
@Override public AlertsChannelConfiguration generateAlertsChannelConfiguration(NewRelicApi api) { WebhookChannel webhookChannel = (WebhookChannel) channel; return AlertsChannelConfiguration.builder() .baseUrl(webhookChannel.getBaseUrl()) .authUsername(webhookChannel.getAuthUsername()) .authPassword(webhookChannel.getAuthPassword()) .build(); } }
@Override public AlertsChannelConfiguration generateAlertsChannelConfiguration(NewRelicApi api) { SlackChannel slackChannel = (SlackChannel) channel; return AlertsChannelConfiguration.builder() .url(slackChannel.getSlackUrl()) .channel(slackChannel.getTeamChannel()) .build(); } }
@Override public AlertsChannelConfiguration generateAlertsChannelConfiguration(NewRelicApi api) { UserChannel userChannel = (UserChannel) channel; int userId = getUserId(api, userChannel.getUserEmail()); AlertsChannelConfiguration.AlertsChannelConfigurationBuilder builder = AlertsChannelConfiguration.builder(); builder.userId(userId); return builder.build(); }
@Override public AlertsChannelConfiguration generateAlertsChannelConfiguration(NewRelicApi api) { EmailChannel emailChannel = (EmailChannel) channel; AlertsChannelConfiguration.AlertsChannelConfigurationBuilder builder = AlertsChannelConfiguration.builder(); builder.recipients(emailChannel.getEmailAddress()); if (BooleanUtils.isTrue(emailChannel.getIncludeJsonAttachment())) { builder.includeJsonAttachment(emailChannel.getIncludeJsonAttachment()); } return builder.build(); } }
private static boolean isUserChannel(AlertsChannel channel) { String userChannelType = ChannelType.USER.name().toLowerCase(); return userChannelType.equals(channel.getType()); } }
@Override public AlertsChannelConfiguration generateAlertsChannelConfiguration(NewRelicApi api) { PagerDutyChannel pagerDutyChannel = (PagerDutyChannel) channel; return AlertsChannelConfiguration.builder() .serviceKey(pagerDutyChannel.getServiceKey()) .build(); } }
EmailChannel updatedEmailChannel = EmailChannel.builder() .channelName(EMAIL_CHANNEL_NAME) .emailAddress("different recipients") .build(); AlertsChannel updatedEmailAlertChannel = createAlertChannel(updatedEmailChannel); when(alertsChannelsApiMock.create(updatedEmailAlertChannel))
private AlertsChannel createAlertChannel(Integer id, Channel channel) { return AlertsChannel.builder() .id(id) .name(channel.getChannelName()) .type(channel.getTypeString()) .configuration(channel.getChannelTypeSupport().generateAlertsChannelConfiguration(apiMock)) .links(new AlertsChannelLinks(emptyList())) .build(); }