"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.DistCertManager = void 0;

function _dateformat() {
  const data = _interopRequireDefault(require("dateformat"));

  _dateformat = function () {
    return data;
  };

  return data;
}

function _get() {
  const data = _interopRequireDefault(require("lodash/get"));

  _get = function () {
    return data;
  };

  return data;
}

function _CommandError() {
  const data = _interopRequireDefault(require("../CommandError"));

  _CommandError = function () {
    return data;
  };

  return data;
}

function _fastlane() {
  const data = require("./fastlane");

  _fastlane = function () {
    return data;
  };

  return data;
}

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

class DistCertManager {
  constructor(appleCtx) {
    this.ctx = appleCtx;
  }

  async list() {
    const args = ['list', this.ctx.appleId, this.ctx.appleIdPassword, this.ctx.team.id, String(this.ctx.team.inHouse)];
    const {
      certs
    } = await (0, _fastlane().runAction)(_fastlane().travelingFastlane.manageDistCerts, args);
    return certs;
  }

  async create() {
    try {
      const args = ['create', this.ctx.appleId, this.ctx.appleIdPassword, this.ctx.team.id, String(this.ctx.team.inHouse)];
      return await (0, _fastlane().runAction)(_fastlane().travelingFastlane.manageDistCerts, args);
    } catch (err) {
      const resultString = (0, _get().default)(err, 'rawDump.resultString');

      if (resultString && resultString.match(/Maximum number of certificates generated/)) {
        throw new (_CommandError().default)('APPLE_DIST_CERTS_TOO_MANY_GENERATED_ERROR');
      }

      throw err;
    }
  }

  async revoke(ids) {
    const args = ['revoke', this.ctx.appleId, this.ctx.appleIdPassword, this.ctx.team.id, String(this.ctx.team.inHouse), ids.join(',')];
    await (0, _fastlane().runAction)(_fastlane().travelingFastlane.manageDistCerts, args);
  }

  format({
    name,
    id,
    status,
    expires,
    created,
    ownerName
  }) {
    const expiresDate = _formatTimestamp(expires);

    const createdDate = _formatTimestamp(created);

    return `${name} (${status}) - ID: ${id} - expires: ${expiresDate} (created: ${createdDate}) - owner: ${ownerName}`;
  }

}

exports.DistCertManager = DistCertManager;
;

function _formatTimestamp(timestamp) {
  return (0, _dateformat().default)(new Date(timestamp * 1000));
}
//# sourceMappingURL=../__sourcemaps__/appleApi/distributionCert.js.map