85 lines
2.7 KiB
JavaScript
85 lines
2.7 KiB
JavaScript
var _ = require('../util').lodash,
|
|
PropertyList = require('./property-list').PropertyList,
|
|
Url = require('./url').Url,
|
|
Certificate = require('./certificate').Certificate,
|
|
|
|
CertificateList;
|
|
|
|
_.inherit((
|
|
|
|
/**
|
|
* @constructor
|
|
* @extends {PropertyList}
|
|
*
|
|
* @param {Object} parent -
|
|
* @param {Array} list - The list of certificate representations
|
|
*
|
|
* @example <caption>Create a new CertificateList</caption>
|
|
* var CertificateList = require('postman-collection').CertificateList,
|
|
* certificateList = new CertificateList({}, [
|
|
* {
|
|
* name: 'my certificate for example.com',
|
|
* matches: ['https://example.com/*'],
|
|
* key: { src: '/path/to/key/file' },
|
|
* cert: { src: '/path/to/certificate/file' }
|
|
* },
|
|
* {
|
|
* name: 'my certificate for example2.com',
|
|
* matches: ['https://example2.com/*'],
|
|
* key: { src: '/path/to/key/file' },
|
|
* cert: { src: '/path/to/key/file' }
|
|
* }
|
|
* ]);
|
|
*/
|
|
CertificateList = function (parent, list) {
|
|
// this constructor is intended to inherit and as such the super constructor is required to be executed
|
|
CertificateList.super_.call(this, Certificate, parent, list);
|
|
}), PropertyList);
|
|
|
|
_.assign(CertificateList.prototype, /** @lends CertificateList.prototype */ {
|
|
/**
|
|
* Matches the given url against the member certificates' allowed matches
|
|
* and returns the certificate that can be used for the url.
|
|
*
|
|
* @param {String} url The url to find the certificate for
|
|
* @returns {Certificate.definition=} The matched certificate
|
|
*/
|
|
resolveOne (url) {
|
|
// url must be either string or an instance of url.
|
|
if (!_.isString(url) && !Url.isUrl(url)) {
|
|
return;
|
|
}
|
|
|
|
// find a certificate that can be applied to the url
|
|
return this.find(function (certificate) {
|
|
return certificate.canApplyTo(url);
|
|
});
|
|
}
|
|
});
|
|
|
|
_.assign(CertificateList, /** @lends CertificateList */ {
|
|
/**
|
|
* Defines the name of this property for internal use.
|
|
*
|
|
* @private
|
|
* @readOnly
|
|
* @type {String}
|
|
*/
|
|
_postman_propertyName: 'CertificateList',
|
|
|
|
/**
|
|
* Checks if the given object is a CertificateList
|
|
*
|
|
* @param {*} obj -
|
|
* @returns {Boolean}
|
|
*/
|
|
isCertificateList: function (obj) {
|
|
return Boolean(obj) && ((obj instanceof CertificateList) ||
|
|
_.inSuperChain(obj.constructor, '_postman_propertyName', CertificateList._postman_propertyName));
|
|
}
|
|
});
|
|
|
|
module.exports = {
|
|
CertificateList
|
|
};
|