diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/openapi.js | 16 | ||||
-rw-r--r-- | scripts/schema.js | 34 |
2 files changed, 37 insertions, 13 deletions
diff --git a/scripts/openapi.js b/scripts/openapi.js index f280eba4..86297967 100644 --- a/scripts/openapi.js +++ b/scripts/openapi.js @@ -85,13 +85,15 @@ function apiRoutes() { .map((x) => ({ name: x })); specification.components = specification.components || {}; - specification.components.securitySchemes = { - bearer: { - type: "http", - scheme: "bearer", - description: "Bearer/Bot prefixes are not required.", + specification.components.securitySchemes = [ + { + bearer: { + type: "http", + scheme: "bearer", + description: "Bearer/Bot prefixes are not required.", + }, }, - }; + ]; routes.forEach((route, pathAndMethod) => { const [p, method] = pathAndMethod.split("|"); @@ -109,7 +111,7 @@ function apiRoutes() { return x.test(path); }) ) { - obj.security = [{ bearer: true }]; + obj.security = [{ bearer: [] }]; } if (route.body) { diff --git a/scripts/schema.js b/scripts/schema.js index be1a7a3f..bd0f73d3 100644 --- a/scripts/schema.js +++ b/scripts/schema.js @@ -91,9 +91,9 @@ function main() { if (!part) continue; // this is a hack. want some want to check if its a @column, instead - if (part.properties) - Object.keys(part.properties) - .filter((key) => + if (part.properties) { + for (let key in part.properties) { + if ( [ // BaseClass methods "toJSON", @@ -104,9 +104,31 @@ function main() { "recover", "reload", "assign", - ].includes(key), - ) - .forEach((key) => delete part.properties[key]); + ].includes(key) + ) { + delete part.properties[key]; + continue; + } + + if (part.properties[key].anyOf) { + const nullIndex = part.properties[key].anyOf.findIndex( + (x) => x.type == "null", + ); + if (nullIndex != -1) { + part.properties[key].nullable = true; + part.properties[key].anyOf.splice(nullIndex, 1); + + if (part.properties[key].anyOf.length == 1) { + Object.assign( + part.properties[key], + part.properties[key].anyOf[0], + ); + delete part.properties[key].anyOf; + } + } + } + } + } definitions = { ...definitions, [name]: { ...part } }; } |