* Parse a skillpack channelId into a SlackRoute. * Supports: * slack-dm- - → { channel: } * slack-thread- - - → { channel: , threadTs: }
(channelId: string)
| 779 | * Parse a skillpack channelId into a SlackRoute. |
| 780 | * Supports: |
| 781 | * slack-dm-<teamId>-<channelId> → { channel: <channelId> } |
| 782 | * slack-thread-<teamId>-<ch>-<ts> → { channel: <ch>, threadTs: <ts> } |
| 783 | */ |
| 784 | private parseChannelId(channelId: string): SlackRoute { |
| 785 | if (channelId.startsWith("slack-thread-")) { |
| 786 | // slack-thread-<teamId>-<channel>-<threadTs> |
| 787 | const rest = channelId.replace("slack-thread-", ""); |
| 788 | const parts = rest.split("-"); |
| 789 | // teamId is parts[0], channel is parts[1], threadTs is parts[2+] |
| 790 | if (parts.length >= 3) { |
| 791 | const threadTs = parts.slice(2).join("-"); |
| 792 | return { channel: parts[1], threadTs }; |
| 793 | } |
| 794 | } |
| 795 | |
| 796 | if (channelId.startsWith("slack-dm-")) { |
| 797 | // slack-dm-<teamId>-<channelId> |
| 798 | const rest = channelId.replace("slack-dm-", ""); |
| 799 | const parts = rest.split("-"); |
| 800 | if (parts.length >= 2) { |
| 801 | return { channel: parts.slice(1).join("-") }; |
| 802 | } |
| 803 | } |
| 804 | |
| 805 | // Fallback: treat as raw channel ID |
| 806 | return { channel: channelId }; |
| 807 | } |