@cfxlabsinc/b2b-services
    Preparing search index...

    Class CustomerSlackMessagePublisher

    Index
    • Parameters

      • args: { customerId: string }

      Returns Promise<
          {
              channelId: string;
              config: unknown;
              createdAt: Date;
              customerSlackBotInstallationId: string;
              id: string;
              isHidden: boolean;
              token: string;
              updatedAt: Date;
          }[],
      >

    • Fans a message out to every channel, dropping the ones the bot can no longer reach.

      A customer removing the bot from a single channel used to take down delivery for all of them: the rejection escaped this method, escaped the SNS handler, and SNS retried an event that could never succeed. Each retry re-posted to the channels that had already accepted the message — a fan-out cannot un-send what its siblings delivered before the rejection surfaced — so one dead channel produced duplicates everywhere else and then a DLQ entry.

      Permanently unreachable channels are therefore logged and skipped. Everything else still throws, so a rate limit or a Slack outage keeps the retry that will actually clear it.

      Type Parameters

      • T extends { channelId: string; token: string }

      Parameters

      • args: { channels: T[]; slackMessage: KnownBlock[] }

      Returns Promise<void>