Skip to content

Instantly share code, notes, and snippets.

@johnkors
Created June 4, 2025 12:36
Show Gist options
  • Save johnkors/4dc6af096956a5c600dc1ad1a52a7bd0 to your computer and use it in GitHub Desktop.
Save johnkors/4dc6af096956a5c600dc1ad1a52a7bd0 to your computer and use it in GitHub Desktop.
public class EmojiChangedHandler(ISlackClient client) : IHandleEmojiChanged
{
public async Task<EventHandledResponse> Handle(EventMetaData eventMetadata, EmojiChangedEvent emojichanged)
{
var subEvent = emojichanged.CreateSubType();
var chatReq = new ChatPostMessageRequest
{
Channel = "#emojiilogs",
Link_Names = true
};
chatReq.Blocks = subEvent switch
{
EmojiAdded added => [
TextBlock($"New emojii! :{added.Name}:"),
new ImageBlock { alt_text = added.Name, image_url = added.Value.ToString() }],
EmojiRenamed { Value: not null } renamed => [
TextBlock($"Emojii :{renamed.NewName}: changed") ,
new ImageBlock { alt_text = $"{renamed.OldName}=>{renamed.NewName}", image_url = renamed.Value.ToString() }],
EmojiRemoved del => [
TextBlock($"Emoji `:{del.Names.First()}:` removed 😭")
],
_ => chatReq.Blocks,
};
await client.ChatPostMessage(chatReq);
return new EventHandledResponse("OK");
SectionBlock TextBlock(string text) => new() { text = new Text { text = text} };
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment