{"version":3,"file":"ApiResponseValidator.mjs","sources":["../../../src/validation/ApiResponseValidator.ts"],"sourcesContent":["import { ApiError } from \"../models/http/ApiError\";\nimport { ApiResponse } from \"../models/http/ApiResponse\";\n\n/**\n * Determines whether or not an API response can be used to construct a chat response.\n *\n * @internal\n */\nexport class ApiResponseValidator {\n  public static validate(\n    apiResponse: ApiResponse,\n    statusCode?: number\n  ): ApiError | undefined {\n    const tests = [\n      this.validateResponseProp,\n      this.validateMetaProp,\n      this.checkForApiErrors,\n    ];\n    for (const test of tests) {\n      const err = test(apiResponse, statusCode);\n      if (err !== undefined) {\n        return err;\n      }\n    }\n  }\n\n  private static validateResponseProp(\n    apiResponse: ApiResponse,\n    statusCode?: number\n  ): ApiError | undefined {\n    if (!apiResponse.response) {\n      return new ApiError(\n        \"Malformed Chat API response: missing response property.\",\n        statusCode\n      );\n    }\n  }\n\n  private static validateMetaProp(\n    apiResponse: ApiResponse,\n    statusCode?: number\n  ): ApiError | undefined {\n    if (!apiResponse.meta) {\n      return new ApiError(\n        \"Malformed Chat API response: missing meta property.\",\n        statusCode\n      );\n    }\n  }\n\n  private static checkForApiErrors(\n    apiResponse: ApiResponse,\n    statusCode?: number\n  ): ApiError | undefined {\n    if (apiResponse.meta?.errors?.length >= 1) {\n      const error = apiResponse.meta.errors[0];\n      return new ApiError(error.message, statusCode, error.code, error.type);\n    }\n  }\n}\n"],"names":[],"mappings":";;AAGA;;;;AAIG;MACU,oBAAoB,CAAA;AACxB,IAAA,OAAO,QAAQ,CACpB,WAAwB,EACxB,UAAmB,EAAA;AAEnB,QAAA,MAAM,KAAK,GAAG;AACZ,YAAA,IAAI,CAAC,oBAAoB;AACzB,YAAA,IAAI,CAAC,gBAAgB;AACrB,YAAA,IAAI,CAAC,iBAAiB;SACvB,CAAC;AACF,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAC1C,IAAI,GAAG,KAAK,SAAS,EAAE;AACrB,gBAAA,OAAO,GAAG,CAAC;AACZ,aAAA;AACF,SAAA;KACF;AAEO,IAAA,OAAO,oBAAoB,CACjC,WAAwB,EACxB,UAAmB,EAAA;AAEnB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;AACzB,YAAA,OAAO,IAAI,QAAQ,CACjB,yDAAyD,EACzD,UAAU,CACX,CAAC;AACH,SAAA;KACF;AAEO,IAAA,OAAO,gBAAgB,CAC7B,WAAwB,EACxB,UAAmB,EAAA;AAEnB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACrB,YAAA,OAAO,IAAI,QAAQ,CACjB,qDAAqD,EACrD,UAAU,CACX,CAAC;AACH,SAAA;KACF;AAEO,IAAA,OAAO,iBAAiB,CAC9B,WAAwB,EACxB,UAAmB,EAAA;QAEnB,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE;YACzC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACzC,YAAA,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AACxE,SAAA;KACF;AACF;;;;"}