diff --git a/src-javascript/config/swaggerConfig.js b/src-javascript/config/swaggerConfig.js index abf4d2e..0744c18 100644 --- a/src-javascript/config/swaggerConfig.js +++ b/src-javascript/config/swaggerConfig.js @@ -55,15 +55,29 @@ class SwaggerConfig { static swaggerDocsFromJoiSchema(validationRules) { let parameters = []; validationRules.payload.forEach((payload) => { - if (payload.type === PayloadType.PARAMS || payload.type === PayloadType.QUERY) { + if (payload.type === PayloadType.PARAMS) { const schema = payload.schema; const { swagger } = j2s(schema); for (const key in swagger.properties) { const property = swagger.properties[key]; const parameter = { name: key, - in: payload.type === PayloadType.PARAMS ? 'path' : 'query', - required: swagger.required.includes(key), + in: 'path', + required: swagger.required?.includes(key) ?? false, + type: property.type, + format: property.format, + }; + parameters.push(parameter); + } + } else if (payload.type === PayloadType.QUERY) { + const schema = payload.schema; + const { swagger } = j2s(schema); + for (const key in swagger.properties) { + const property = swagger.properties[key]; + const parameter = { + name: key, + in: 'query', + required: swagger.required?.includes(key) ?? false, type: property.type, format: property.format, }; diff --git a/src-typescript/config/swaggerConfig.ts b/src-typescript/config/swaggerConfig.ts index 4c3ace9..f1317df 100644 --- a/src-typescript/config/swaggerConfig.ts +++ b/src-typescript/config/swaggerConfig.ts @@ -147,7 +147,7 @@ class SwaggerConfig { const parameter: Parameter = { name: key, in: 'path', - required: swagger.required.includes(key), + required: swagger.required?.includes(key) ?? false, type: property.type, format: property.format, }; @@ -161,7 +161,7 @@ class SwaggerConfig { const parameter: Parameter = { name: key, in: 'query', - required: swagger.required.includes(key), + required: swagger.required?.includes(key) ?? false, type: property.type, format: property.format, };