remove error response except default (#1295)

This commit is contained in:
Yabo Hu 2024-01-16 14:09:01 +08:00 коммит произвёл GitHub
Родитель 77e0e7ce05
Коммит b0bb844d05
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 12 добавлений и 1 удалений

Просмотреть файл

@ -205,7 +205,7 @@ export /* @internal */ class Inferrer {
const hasQueryParameter = getOperation?.parameters?.find(p => p.protocol.http?.in === 'query' && p.language.default.name !== 'apiVersion');
//parameter.protocal.http.in === 'body' probably only applies to open api 2.0
const schema = putOperation?.requests?.[0]?.parameters?.find(p => p.protocol.http?.in === 'body')?.schema;
if (getOperation && !hasQueryParameter && schema && [...values(getOperation?.responses), ...values(getOperation?.exceptions)].filter(each => each.protocol?.http?.statusCodes[0] !== 'default' && (<SchemaResponse>each).schema !== schema).length === 0) {
if (getOperation && !hasQueryParameter && schema && [...values(getOperation?.responses)].filter(each => (<SchemaResponse>each).schema !== schema).length === 0) {
await this.addVariants(putOperation.parameters, putOperation, this.createCommandVariant('create', [operationGroup.$key], [], this.state.model), '', this.state, [getOperation], CommandType.GetPut);
}
}

Просмотреть файл

@ -27,11 +27,22 @@ async function tweakModel(state: State): Promise<PwshModel> {
removeM4DefaultDescription(model);
removeExceptionResponse(model);
handleNoinlineDirective(state);
return model;
}
//remove error responses except default
function removeExceptionResponse(model: CodeModel) {
model.operationGroups.forEach(group => {
group.operations?.forEach(operation => {
operation.exceptions = operation.exceptions?.filter(exception => exception.protocol.http?.statusCodes[0] === 'default');
});
});
}
//sort path parameters to follow the order in path for each operation
function sortParameters(model: CodeModel) {
model.operationGroups.forEach(group => {