private mockRequest()

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;
  }