test-openapi
Version:
Automated client requests
64 lines (45 loc) • 1.98 kB
JavaScript
;require("core-js/modules/es.array.flat-map");require("core-js/modules/es.array.iterator");require("core-js/modules/es.array.unscopables.flat-map");Object.defineProperty(exports,"__esModule",{value:true});exports.getSecParams=void 0;var _lodash=require("lodash");
var _error=require("../../../../../errors/error.js");
var _location=require("../../../../../utils/location.js");
var _in_to_location=require("./in_to_location");
const getSecParams=function({
spec:{securityDefinitions,security:apiSecurity=[]},
operation:{security=apiSecurity}})
{
const secRefs=getSecRefs({security});
const secParams=secRefs.map(([secName,scopes])=>
getSecParam({secName,scopes,securityDefinitions}));
const secParamsA=Object.assign({},...secParams);
return secParamsA;
};exports.getSecParams=getSecParams;
const getSecRefs=function({security}){
const securityA=security.flatMap(Object.entries);
const securityB=(0,_lodash.uniqBy)(securityA,JSON.stringify);
return securityB;
};
const getSecParam=function({secName,scopes,securityDefinitions}){
const securityDef=securityDefinitions[secName];
const securityDefA=normalizeSecurityDef({securityDef,secName,scopes});
return securityDefA;
};
const normalizeSecurityDef=function({securityDef,secName,scopes}){
const handler=getSecParamHandler({securityDef,secName});
const secParam=handler({...securityDef,scopes});
return secParam;
};
const getSecParamHandler=function({securityDef:{type},secName}){
const handler=SECURITY_DEFS[type];
if(handler!==undefined){
return handler;
}
throw new _error.TestOpenApiError(
`In 'securityDefinitions.${secName}', security definition has type '${type}' but this has not been implemented yet`);
};
const getDefApiKey=function({name,in:paramIn}){
const location=_in_to_location.IN_TO_LOCATION[paramIn];
const key=(0,_location.locationToKey)({name,location});
return{[key]:{type:"string",optional:true}};
};
const SECURITY_DEFS={
apiKey:getDefApiKey};
//# sourceMappingURL=security.js.map