colbygk/certificate-monitor

View on GitHub
lib/api.js

Summary

Maintainability
A
0 mins
Test Coverage

const log = require('./log');

const certificateCheck = (cert, daysToWarn, dateToCheck) => {
    if (daysToWarn === null) {
        daysToWarn = 30;
    }
    if (dateToCheck === null) {
        dateToCheck = new Date();
    }

    const daysToWarnMillis = daysToWarn * 86400 * 1000;

    var certInfo = Object({
        request_url: cert.requestUrl,
        subject_cn: cert['subject']['CN'],
        subject_alt_name: cert['subjectaltname'],
        authorized: cert['authorized'],
        valid_from: new Date(cert['valid_from']),
        valid_to: new Date(cert['valid_to']),
        days_to_warn: daysToWarn,
        date_checked_against: dateToCheck
    });

    const diff = certInfo.valid_to - dateToCheck;

    certInfo.date_warning = (diff - daysToWarnMillis) <= 0;

    return certInfo;
};

const logCertificateCheck = (certInfo) => {
    log.info('Checking:', certInfo.request_url);
    log.info('subject CN:', certInfo.subject_cn);
    log.info('subject alt:', certInfo.subject_alt_name);
    log.info('authorized:', certInfo.authorized);
    log.info('valid_from:', certInfo.valid_from);
    log.info('valid_to:', certInfo.valid_to);
    log.info('date_warning:', certInfo.date_warning);
    log.info('date_checked_against:', certInfo.date_checked_against);
};

const jsonCertificateCheck = (certInfo) => {
    return JSON.stringify(certInfo);
};


module.exports.logCertificateCheck = logCertificateCheck;
module.exports.jsonCertificateCheck = jsonCertificateCheck;
module.exports.certificateCheck = certificateCheck;