copyAssets()

in source/resources/helper/lib/s3-helper.js [106:167]


  copyAssets(manifestKey, sourceS3Bucket, sourceS3prefix, destS3Bucket) {
    // Handling Promise Rejection
    process.on('unhandledRejection', error => {
      throw error;
    });

    Logger.log(
      Logger.levels.ROBUST,
      `manifest key: ${manifestKey} \n source bucket: ${sourceS3Bucket} \n source prefix: ${sourceS3prefix} \n destination bucket: ${destS3Bucket}`
    );

    let _self = this;
    return new Promise((resolve, reject) => {
      this._downloadManifest(sourceS3Bucket, manifestKey)
        .then(data => {
          fs.readFile(_self.downloadLocation, 'utf8', function (err, data) {
            if (err) {
              Logger.error(
                Logger.levels.INFO,
                `${err}`
              );
              reject(err);
            }

            let _manifest = _self._validateJSON(data);

            if (!_manifest) {
              reject('Unable to validate downloaded manifest file JSON');
            } else {
              _self
                ._uploadFile(
                  _manifest.files,
                  0,
                  destS3Bucket,
                  `${sourceS3Bucket}/${sourceS3prefix}`
                )
                .then(resp => {
                  Logger.log(
                    Logger.levels.ROBUST,
                    `${resp}`
                  );
                  resolve(resp);
                })
                .catch(err => {
                  Logger.error(
                    Logger.levels.INFO,
                    `${err}`
                  );
                  reject(err);
                });
            }
          });
        })
        .catch(err => {
          Logger.error(
            Logger.levels.INFO,
            `${err}`
          );
          reject(err);
        });
    });
  }