notifyTeams static method

Future<void> notifyTeams({
  1. String? customTeamsMsg,
  2. bool? shareLink,
  3. bool? shareQr,
})

Implementation

static Future<void> notifyTeams({
  String? customTeamsMsg,
  bool? shareLink,
  bool? shareQr,
}) async {
  final teamsService = FlutterReleaseXTeamsService();
  final uploadState = FlutterReleaseXUploadState();

  final String? downloadLink = uploadState.uploadLink;
  final teamsConfig = FlutterReleaseXConfig().config.uploadOptions.teams;
  final bool isTeamsEnabled = teamsConfig.enabled;
  final String? webhookUrl = teamsConfig.webhookUrl;
  final String? customMessage = customTeamsMsg ?? teamsConfig.customMessage;
  final List<String>? mentionUsers = teamsConfig.mentionUsers;
  final bool isShareDownloadLink = shareLink ?? teamsConfig.shareLink;
  final bool isShareQR = shareQr ?? teamsConfig.shareQR;
  final File qrFile = File('./release-qr-code.png');

  if (isTeamsEnabled && webhookUrl != null && webhookUrl.isNotEmpty) {
    try {
      FlutterReleaseXHelpers.showLoading('🔔 Sharing on Microsoft Teams...');

      await teamsService.sendLinkAndQr(
        webhookUrl: webhookUrl,
        qrFile: qrFile,
        message: customMessage ?? '🎉 Your app is ready for download!',
        mentions: mentionUsers,
        downloadLink: downloadLink ?? FlutterReleaseXKstrings.packageLink,
        isShareQR: isShareQR,
        isShareDownloadLink: isShareDownloadLink,
      );
    } catch (e, s) {
      showHighlight(
        firstMessage: 'Teams error:',
        highLightmessage: e.toString(),
        lastMessage: s.toString(),
      );
      exit(0);
    } finally {
      FlutterReleaseXHelpers.stopLoading();
    }
  }
}