function callService()

in utils/aempackager.js [172:228]


function callService(data, callback) {
  if(data.retryCount === undefined) {
      data.retryCount = 0;
      if(data.maxRetry === undefined) {
          data.maxRetry = 10;
      }
  }

  logger.debug(data.retryCount + '. Service call: ', data.serviceURL);

  let req = request.post({ url: data.serviceURL }, (error, response, body) => {
      var statusCodeLine = (response === undefined) ? "" : "Response: " + response.statusCode + " : " + response.statusMessage;
      logger.debug(statusCodeLine);

      if (error) {
          if(data.retryCount < data.maxRetry) {
              data.retryCount++;
              callService(data, callback);
          } else  { 
              logger.error(error);
              callback(error + " " + statusCodeLine, undefined); 
          }

          return;
      } else if(response && response.statusCode===200) {
        if(data.download) {
          callback(undefined, response);
          return;
        }
        xml2js.parseString(body, (error, result) => {
          if(result) {
            logger.debug('Response body: ',body);
            if(getStatusCode(result) === '200') {
              callback(undefined, result);
            } else {
              logger.debug(body);
              logger.warn("Response status:",getStatusCode(result),":",getStatusText(result));
              retryCallService(data, 'Unable to parse service response for', data.serviceURL, callback);
            }
          } else if(error) {
            logger.debug(body);
            logger.warn('Unable to parse service response for', data.serviceURL);
            retryCallService(data, 'Unable to parse service response for', data.serviceURL, callback);
          }
        });

        return;
      } 

      retryCallService(data, "Error calling service " + data.serviceURL, callback)

      return;
  }).auth(data.username, data.password);

  logger.debug(JSON.stringify(req.toJSON()));
  return req;
}