summaryrefslogtreecommitdiffstats
path: root/openapi/generate_openapi.py
diff options
context:
space:
mode:
Diffstat (limited to 'openapi/generate_openapi.py')
-rw-r--r--openapi/generate_openapi.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/openapi/generate_openapi.py b/openapi/generate_openapi.py
index 54526416..b843feff 100644
--- a/openapi/generate_openapi.py
+++ b/openapi/generate_openapi.py
@@ -814,13 +814,21 @@ def parse_schemas(schemas_dir):
for d in data]
entry_points.extend(schema_entry_points)
+ end_of_previous_operation = -1
+
# try to match JSDoc to the operations
for entry_point in schema_entry_points:
operation = entry_point.method # POST/GET/PUT/DELETE
+
+ # find all jsdocs that end before the current operation,
+ # the last item in the list is the one we need
jsdoc = [j for j in jsdocs
- if j.loc.end.line + 1 == operation.loc.start.line]
+ if j.loc.end.line + 1 <= operation.loc.start.line and
+ j.loc.start.line > end_of_previous_operation]
if bool(jsdoc):
- entry_point.doc = jsdoc[0]
+ entry_point.doc = jsdoc[-1]
+
+ end_of_previous_operation = operation.loc.end.line
except TypeError:
logger.warning(context.txt_for(statement))
logger.error('{}:{}-{} can not parse {}'.format(path,