notifySlack static method

dynamic notifySlack({
  1. String? customSlackMsg,
  2. bool? shareLink,
  3. bool? shareQr,
})

Implementation

static notifySlack({
  String? customSlackMsg,
  bool? shareLink,
  bool? shareQr,
}) async {
  final slackService = SlackService();
  final uploadState = UploadState();

  final String? downloadLink = uploadState.uploadLink;
  final slackConfig = Config().config.uploadOptions.slack;
  final bool isSlackEnabled = slackConfig.enabled;
  final String? slackBotToken = slackConfig.botUserOauthToken;
  final String? channelId = slackConfig.defaultChannelId;
  final String? customMessage = customSlackMsg ?? slackConfig.customMessage;
  final List<String>? mentionUsers = slackConfig.mentionUsers;
  final bool isShareDownloadLink = shareLink ?? slackConfig.shareLink;
  final bool isShareQR = shareQr ?? slackConfig.shareQR;
  final File qrFile = File('./release-qr-code.png');

  if (isSlackEnabled && slackBotToken != null && channelId != null) {
    try {
      Helpers.showLoading('🔔 Sharing on Slack...');

      await slackService.sendLinkAndQr(
        slackBotToken: slackBotToken,
        fileSizeInBytes: qrFile.lengthSync(),
        file: qrFile,
        channelId: channelId,
        message: customMessage ?? '🎉 Your app is ready for download!',
        mentions: mentionUsers,
        downloadLink: downloadLink ?? Kstrings.packageLink,
        isShareQR: isShareQR,
        isShareDownloadLink: isShareDownloadLink,
      );
      print('Message sent successfully to Slack.');
    } catch (e, s) {
      showHighlight(
        firstMessage: 'Slack error:',
        highLightmessage: e.toString(),
        lastMessage: s.toString(),
      );
      exit(0);
    } finally {
      Helpers.stopLoading();
    }
  }
}