From a5e65b87531be8878adc257fa1ce548887eb6dbe Mon Sep 17 00:00:00 2001 From: Jose Manuel Heredia Hidalgo Date: Tue, 11 Aug 2020 15:33:40 -0500 Subject: [PATCH] Extract headers for Exceptions (#712) --- src/generators/operationGenerator.ts | 2 +- src/utils/extractHeaders.ts | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/generators/operationGenerator.ts b/src/generators/operationGenerator.ts index 6c4e5e554f..adc2eb8dfc 100644 --- a/src/generators/operationGenerator.ts +++ b/src/generators/operationGenerator.ts @@ -958,7 +958,7 @@ function hasMediaType( operationDetails: OperationDetails, mediaType: KnownMediaType ) { - if (!operationDetails.requests) { + if (!operationDetails.requests.some(r => !!r.mediaType)) { return operationDetails.mediaTypes.has(mediaType); } diff --git a/src/utils/extractHeaders.ts b/src/utils/extractHeaders.ts index 9f9411d3c1..1f90741c87 100644 --- a/src/utils/extractHeaders.ts +++ b/src/utils/extractHeaders.ts @@ -9,8 +9,12 @@ export function extractHeaders( let responseHeaders: ObjectSchema[] = []; operationGroups.forEach(operationGroup => - operationGroup.operations.forEach(operation => - operation.responses?.forEach(response => { + operationGroup.operations.forEach(operation => { + const responsesAndExceptions = [ + ...(operation.responses || []), + ...(operation.exceptions || []) + ]; + responsesAndExceptions.forEach(response => { const operationName = getOperationFullName( operationGroup, operation, @@ -21,8 +25,8 @@ export function extractHeaders( const headerSchema = headersToSchema(headers, operationName); headerSchema && responseHeaders.push(headerSchema); } - }) - ) + }); + }) ); return responseHeaders;