package com.hubspot.blazar.config;
import org.hibernate.validator.constraints.NotEmpty;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Optional;
import com.google.inject.Inject;
import com.sun.istack.internal.NotNull;
public class BlazarSlackConfiguration {
@NotNull
@NotEmpty
private final String slackApiBaseUrl;
private final String slackApiToken;
private final Optional<String> feedbackRoom;
private BlazarSlackDirectMessageConfiguration directMessageConfiguration;
private String username;
/**
* @param slackApiBaseUrl The slack api to point at
* @param slackApiToken Auth token for connecting
* @param username The username to post in slack as
* @param feedbackRoom The room to push feedback from our in-app feedback box to
* @param directMessageConfiguration The configuration for blazar's direct-message functionality
*/
@Inject
public BlazarSlackConfiguration(@JsonProperty("slackApiBaseUrl") String slackApiBaseUrl,
@JsonProperty("slackApiToken") String slackApiToken,
@JsonProperty("username") String username,
@JsonProperty("feedbackRoom") Optional<String> feedbackRoom,
@JsonProperty("directMessageConfiguration") BlazarSlackDirectMessageConfiguration directMessageConfiguration) {
this.slackApiBaseUrl = slackApiBaseUrl;
this.slackApiToken = slackApiToken;
this.username = username;
this.feedbackRoom = feedbackRoom;
this.directMessageConfiguration = directMessageConfiguration;
}
public String getSlackApiBaseUrl() {
return slackApiBaseUrl;
}
public String getSlackApiToken() {
return slackApiToken;
}
public String getUsername() {
return username;
}
public Optional<String> getFeedbackRoom() {
return feedbackRoom;
}
public BlazarSlackDirectMessageConfiguration getDirectMessageConfiguration() {
return directMessageConfiguration;
}
}