const tailchat = require('tailchat-client-sdk');
const fs = require('fs-extra');
const os = require('os');
const path = require('path');

// reference: https://docs.codemagic.io/yaml-basic-configuration/environment-variables/#artifact-links
const artifactLinks = process.env['CM_ARTIFACT_LINKS'];
const tailchatSubscribeId = process.env['TAILCHAT_SUBSCRIBE_ID'];
const branch = process.env['CM_BRANCH'];

console.log('artifactLinks:', artifactLinks);

if (tailchatSubscribeId) {
  try {
    if (fs.existsSync(path.join(os.homedir(), './SUCCESS'))) {
      const links = JSON.parse(artifactLinks) ?? [];
      const text =
        '[b]App Building Success:[/b]\n' +
        links
          .map((link) => {
            const { name, url, md5, versionName } = link;
            const pagesUrl =
              branch === 'master'
                ? 'https://tailchat-app.msgbyte.com/app-release.apk'
                : `https://${branch}.tailchat.pages.dev/app-release.apk`;

            return (
              `${name}\n` +
              `version: ${versionName}(${md5})\n` +
              `[url=${pagesUrl}]Download from Pages[/url] or [url=${url}]Download from CI[/url]`
            );
          })
          .join('\n=========\n');

      tailchat.sendSimpleNotify(
        'https://tailchat-nightly.moonrailgun.com',
        tailchatSubscribeId,
        text
      );
    } else {
      const text =
        '[b]App Building Failed:[/b]\n' +
        `[url=https://codemagic.io/app/${process.env['CM_PROJECT_ID']}/build/${process.env['CM_BUILD_ID']}]View Detail[/url]`;

      tailchat.sendSimpleNotify(
        'https://tailchat-nightly.moonrailgun.com',
        tailchatSubscribeId,
        text
      );
    }
  } catch (e) {
    console.error(e);
  }
} else {
  console.error('Not found tailchatSubscribeId');
}
