18F/federalist-builder

View on GitHub
src/build-status-reporter.js

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
const axios = require('axios');
const logger = require('./logger');

function _request(url, json) {
  return axios.post(url, json);
}

function _sendBuildStatusRequest(build, buildStatus, buildErrorMsg) {
  let logMsg = `Sending ${buildStatus} status request for ${build.buildID}`;
  if (buildErrorMsg.length) {
    logMsg = `${logMsg}: ${buildErrorMsg}`;
  }
  logger.verbose(logMsg);

  const url = build.containerEnvironment.STATUS_CALLBACK;
  return _request(url, {
    message: Buffer.from(buildErrorMsg).toString('base64'),
    status: buildStatus,
  });
}

function reportBuildStatus(build, buildStatus, buildErrorMsg = '') {
  return _sendBuildStatusRequest(build, buildStatus, buildErrorMsg)
    .catch((err) => {
      logger.error('Error reporting build status:', err);
    });
}
module.exports = { reportBuildStatus };