package pl.touk.chat.bot.janusz.slack;
import com.ullink.slack.simpleslackapi.SlackMessage;
import com.ullink.slack.simpleslackapi.SlackMessageListener;
import com.ullink.slack.simpleslackapi.SlackSession;
import com.ullink.slack.simpleslackapi.impl.SlackSessionFactory;
import pl.touk.chat.bot.janusz.JanuszCommander;
import pl.touk.chat.bot.janusz.JanuszListener;
import pl.touk.chat.bot.janusz.config.JanuszConfiguration;
import javax.annotation.Resource;
public class SlackJanusz implements JanuszListener {
@Resource
private JanuszConfiguration januszConfiguration;
@Resource
private JanuszCommander janusz;
private SlackSession session;
@Override
public void listen() {
session = SlackSessionFactory.createWebSocketSlackSession(januszConfiguration.slack.apiToken);
session.addMessageListener(new SlackMessageListener() {
@Override
public void onSessionLoad(SlackSession slackSession) {
}
@Override
public void onMessage(SlackMessage slackMessage) {
janusz.processCommand(
slackMessage.getMessageContent(),
slackMessage.getSender().getUserName(),
result -> session.sendMessageOverWebSocket(slackMessage.getChannel(), result, null)
);
}
});
session.connect();
}
@Override
public boolean isEnabled() {
return januszConfiguration.slack.enabled;
}
}