private extractResponse()

in lib/generator/exampleGenerator.ts [459:498]


  private extractResponse(specItem: any, payload: any) {
    log.info("extractResponse");

    const specResp = specItem.content.responses;
    const longRunning: boolean = specItem.content["x-ms-long-running-operation"];

    // below handled status code also should add in swaggerMocker.ts mockForExample() preHandledStatusCode array

    if (longRunning && !("202" in specResp) && !("201" in specResp)) {
      // console.warn('x-ms-long-running-operation is true, but no 202 or 201 response');
      return {};
    }

    if (longRunning && !("200" in specResp || "204" in specResp)) {
      // console.warn('x-ms-long-running-operation is true, but no 200 or 204 response');
    }

    if (!longRunning && ("202" in specResp || "201" in specResp)) {
      // console.warn('x-ms-long-running-operation is not set true, but 202 or 201 response is provided');
      return {};
    }
    const resp: any = {};

    if (!longRunning && "200" in specResp) {
      this.getResponseExample(specItem, payload, resp, "200", false);
    }

    if ("201" in specResp) {
      this.getResponseExample(specItem, payload, resp, "201", "200" in specResp);
    }

    if ("202" in specResp) {
      this.getResponseExample(specItem, payload, resp, "202", "200" in specResp);
    }

    if ("204" in specResp) {
      resp["204"] = {};
    }
    return resp;
  }