|
2 | 2 |
|
3 | 3 | import com.objectcomputing.checkins.configuration.CheckInsConfiguration; |
4 | 4 | import com.slack.api.methods.request.conversations.ConversationsInfoRequest; |
| 5 | +import com.slack.api.methods.request.emoji.EmojiListRequest; |
5 | 6 | import com.slack.api.methods.response.conversations.ConversationsInfoResponse; |
| 7 | +import com.slack.api.methods.response.emoji.EmojiListResponse; |
6 | 8 | import com.slack.api.model.block.LayoutBlock; |
7 | 9 | import com.slack.api.Slack; |
8 | 10 | import com.slack.api.methods.MethodsClient; |
|
15 | 17 | import com.slack.api.methods.request.users.UsersInfoRequest; |
16 | 18 | import com.slack.api.methods.response.users.UsersInfoResponse; |
17 | 19 |
|
| 20 | +import io.micronaut.cache.annotation.CacheConfig; |
| 21 | +import io.micronaut.cache.annotation.Cacheable; |
18 | 22 | import jakarta.inject.Singleton; |
19 | 23 | import jakarta.inject.Inject; |
20 | 24 |
|
21 | 25 | import java.util.List; |
22 | 26 | import java.io.IOException; |
| 27 | +import java.util.Map; |
23 | 28 |
|
24 | 29 | import jnr.ffi.annotations.In; |
25 | 30 | import org.slf4j.Logger; |
26 | 31 | import org.slf4j.LoggerFactory; |
27 | 32 |
|
| 33 | +@CacheConfig("slack-cache") |
28 | 34 | @Singleton |
29 | 35 | public class SlackSearch { |
30 | 36 | private static final Logger LOG = LoggerFactory.getLogger(SlackSearch.class); |
@@ -122,5 +128,26 @@ public String findUserEmail(String userId) { |
122 | 128 | } |
123 | 129 | return null; |
124 | 130 | } |
| 131 | + |
| 132 | + |
| 133 | + @Cacheable |
| 134 | + public Map<String, String> getCustomEmoji() { |
| 135 | + String token = configuration.getApplication().getSlack().getBotToken(); |
| 136 | + if (token != null) { |
| 137 | + try { |
| 138 | + MethodsClient client = Slack.getInstance().methods(token); |
| 139 | + EmojiListResponse response = client.emojiList(EmojiListRequest.builder().build()); |
| 140 | + |
| 141 | + if (response.isOk()) { |
| 142 | + return response.getEmoji(); |
| 143 | + } |
| 144 | + } catch(IOException e) { |
| 145 | + LOG.error("SlackSearch.getCustomEmoji: " + e.toString()); |
| 146 | + } catch(SlackApiException e) { |
| 147 | + LOG.error("SlackSearch.getCustomEmoji: " + e.toString()); |
| 148 | + } |
| 149 | + } |
| 150 | + return null; |
| 151 | + } |
125 | 152 | } |
126 | 153 |
|
0 commit comments