From c406dc54099f7182697aea78869dd9452e353030 Mon Sep 17 00:00:00 2001 From: Roman Hotsiy Date: Sun, 21 Jan 2018 21:22:32 +0200 Subject: [PATCH] fix: Path parameters are not correctly overriden fixes #400 --- lib/utils/spec-manager.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/utils/spec-manager.ts b/lib/utils/spec-manager.ts index 6a399da47f..055130d795 100644 --- a/lib/utils/spec-manager.ts +++ b/lib/utils/spec-manager.ts @@ -163,6 +163,12 @@ export class SpecManager { let operationParamsPtr = JsonPointer.join(operationPtr, ['parameters']); let operationParams:SwaggerParameter[] = this.byPointer(operationParamsPtr) || []; + + const operationParamNames = {}; + operationParams.forEach(param => operationParamNames[param.name] = true); + + // filter out path params overriden by operation ones with the same name + pathParams = pathParams.filter(pathParam => !operationParamNames[pathParam.name]); pathParams = injectPointers(pathParams, pathParamsPtr); operationParams = injectPointers(operationParams, operationParamsPtr);