in src/aaz_dev/swagger/model/schema/response.py [0:0]
def to_cmd(self, builder, is_error=False, status_codes=None, **kwargs):
is_error = self.x_ms_error_response or is_error
response = CMDHttpResponse()
response.is_error = is_error
response.status_codes = sorted(status_codes or [])
builder.setup_description(response, self)
if self.headers:
response.header = CMDHttpResponseHeader()
response.header.items = []
for name in sorted(self.headers):
header = CMDHttpResponseHeaderItem()
header.name = name
response.header.items.append(header)
if self.schema:
v = builder(
self.schema,
mutability=MutabilityEnum.Read,
in_base=True,
support_cls_schema=True,
)
if v.frozen:
raise exceptions.InvalidSwaggerValueError(
msg="Invalid Response Schema. It's None.",
key=self.traces,
)
if isinstance(v, (
CMDAnyTypeSchemaBase,
CMDStringSchemaBase,
CMDObjectSchemaBase,
CMDArraySchemaBase,
CMDBooleanSchemaBase,
CMDFloatSchemaBase,
CMDIntegerSchemaBase,
CMDClsSchemaBase,
)):
model = CMDResponseJson()
if is_error:
error_format = AAZErrorFormatEnum.classify_error_format(builder, v)
if error_format:
err_schema = CMDClsSchemaBase()
err_schema.read_only = v.read_only
err_schema.frozen = v.frozen
err_schema._type = f"@{error_format}"
v = err_schema
else:
raise exceptions.InvalidSwaggerValueError(
msg="Error response schema is not supported yet.",
key=self.traces,
)
model.schema = v
else:
raise exceptions.InvalidSwaggerValueError(
msg="Invalid Response type",
key=self.traces,
value=v.type
)
if isinstance(model, CMDResponseJson):
response.body = CMDHttpResponseJsonBody()
response.body.json = model
else:
raise NotImplementedError()
return response