Skip to content
This repository was archived by the owner on Nov 22, 2024. It is now read-only.

Commit d7ca6d1

Browse files
committed
Added first pass at Content-Type processing from openapi data
1 parent d141d87 commit d7ca6d1

File tree

3 files changed

+26
-4
lines changed

3 files changed

+26
-4
lines changed

CloudFlare/api_decode_from_openapi.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,26 @@ def do_path(cmd, values):
3434
deprecated = False
3535
deprecated_date = ''
3636
deprecated_already = False
37-
v = {'action': action.upper(), 'cmd': cmd, 'deprecated': deprecated, 'deprecated_date': deprecated_date, 'deprecated_already': deprecated_already}
37+
38+
# The requestBody/content could be one of the following:
39+
# "requestBody": {
40+
# "content": {
41+
# "application/javascript" {
42+
# "application/json" {
43+
# "application/octet-stream" {
44+
# "application/x-ndjson" {
45+
# "multipart/form-data" {
46+
47+
content_type = None
48+
if 'requestBody' in values[action] and values[action]['requestBody']:
49+
request_body = values[action]['requestBody']
50+
if 'content' in request_body and request_body['content']:
51+
content_type = ','.join(list(request_body['content'].keys()))
52+
53+
if content_type:
54+
v = {'action': action.upper(), 'cmd': cmd, 'deprecated': deprecated, 'deprecated_date': deprecated_date, 'deprecated_already': deprecated_already, 'content_type': content_type}
55+
else:
56+
v = {'action': action.upper(), 'cmd': cmd, 'deprecated': deprecated, 'deprecated_date': deprecated_date, 'deprecated_already': deprecated_already}
3857
cmds.append(v)
3958
return cmds
4059

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@ lint:
9696
openapi:
9797
@tmp=/tmp/_$$$$_ ; \
9898
$(PYTHON) -m cli4 --dump | sort > $$tmp.1 ; \
99-
$(PYTHON) -m cli4 --openapi $(OPENAPI_URL) | sed -e 's/^[A-Z][A-Z]* *//' -e 's/?.*//' -e 's/\/:[a-z][A-Za-z_]*/\/:id/g' -e 's/\/:[a-z][A-Za-z_]*}/\/:id/g' -e 's/:id\/:id/:id/' -e 's/\/:id$$//' -e 's/\/:id$$//' -e 's/\/:id ;/ ;/' -e 's/\/$$//' | sort -u > $$tmp.2 ; \
100-
egrep -v '; deprecated' < $$tmp.2 | diff $$tmp.1 - > $$tmp.3 ; \
99+
$(PYTHON) -m cli4 --openapi $(OPENAPI_URL) | sed -e 's/^[A-Z][A-Z]* *//' -e 's/?.*//' -e 's/\/:[a-z][A-Za-z_]*/\/:id/g' -e 's/\/:[a-z][A-Za-z_]*}/\/:id/g' -e 's/:id\/:id/:id/' -e 's/\/:id$$//' -e 's/\/:id$$//' -e 's/\/:id ;/ ;/' -e 's/ ; Content-Type: .*//' -e 's/\/$$//' | sort -u > $$tmp.2 ; \
100+
egrep -v '; deprecated' < $$tmp.2 | sed -e 's/ ; .*//' | diff $$tmp.1 - > $$tmp.3 ; \
101101
echo "In code:" ; \
102102
egrep '< ' < $$tmp.3 | sed -e 's/< / /' | sort | tee $$tmp.4 ; \
103103
echo "In docs:" ; \

cli4/dump.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ def dump_commands_from_web(cf, url):
1717
else:
1818
a.append('%-6s %s ; deprecated %s' % (r['action'], r['cmd'], r['deprecated_date']))
1919
else:
20-
a.append('%-6s %s' % (r['action'], r['cmd']))
20+
if 'content_type' in r and r['content_type']:
21+
a.append('%-6s %s ; Content-Type: %s' % (r['action'], r['cmd'], r['content_type']))
22+
else:
23+
a.append('%-6s %s' % (r['action'], r['cmd']))
2124
return '\n'.join(a) + '\n'
2225

2326

0 commit comments

Comments
 (0)