in lib/generator/swaggerMocker.ts [106:157]
private mockRequest(paramExample: any, paramSpec: any, rp: string) {
const validator = getRuleValidator(this.exampleRule).onParameter;
for (const pName of Object.keys(paramSpec)) {
const element = paramSpec[pName];
const visited = new Set<string>();
const paramEle = this.getDefSpec(element, visited);
if (paramEle.name === "resourceGroupName") {
paramExample.resourceGroupName = `rg${rp}`;
} else if (paramEle.name === "api-version") {
paramExample["api-version"] = this.spec.info.version;
} else if ("schema" in paramEle) {
// {
// "name": "parameters",
// "in": "body",
// "required": false,
// "schema": {
// "$ref": "#/definitions/SignalRResource"
// }
// }
if (!validator || validator({ schema: paramEle })) {
paramExample[paramEle.name] = this.mockObj(
paramEle.name,
paramEle.schema,
paramExample[paramEle.name] || {},
visited,
true
);
}
} else {
if (paramEle.name in paramExample) {
continue;
}
// {
// "name": "api-version",
// "in": "query",
// "required": true,
// "type": "string"
// }
if (!validator || validator({ schema: paramEle })) {
paramExample[paramEle.name] = this.mockObj(
paramEle.name,
element, // use the original schema containing "$ref" which will hit the cached value
paramExample[paramEle.name],
new Set<string>(),
true
);
}
}
}
return paramExample;
}