@@ -10,18 +10,15 @@ import CharDisplay from "./charDisplay";
10
10
11
11
export const BodySchema = props => {
12
12
const { data } = props ;
13
- const requiredProperties =
14
- getOr (
15
- [ ] ,
16
- [ "requestBody" , "content" , "application_json" , "schema" , "required" ] ,
17
- data
18
- ) || [ ] ;
19
- const properties = getOr (
20
- null ,
21
- [ "requestBody" , "content" , "application_json" , "schema" , "properties" ] ,
13
+ const schema = getOr (
14
+ [ ] ,
15
+ [ "requestBody" , "content" , "application_json" , "schema" ] ,
22
16
data
23
17
) ;
24
18
19
+ const requiredProperties = schema . required || [ ] ;
20
+ const properties = schema . properties ;
21
+
25
22
const sortByRequired = ( a , b ) => {
26
23
const r1 = requiredProperties . includes ( a ) ? 1 : 0 ;
27
24
const r2 = requiredProperties . includes ( b ) ? 1 : 0 ;
@@ -50,13 +47,13 @@ export const BodySchema = props => {
50
47
Object . keys ( properties )
51
48
. filter (
52
49
v =>
53
- data . requestBody . content . application_json . schema . properties [ v ] !==
50
+ properties [ v ] !==
54
51
null
55
52
)
56
53
. sort ( sortByRequired )
57
54
. map ( ( p , i ) => {
58
55
const b =
59
- data . requestBody . content . application_json . schema . properties [ p ] ;
56
+ properties [ p ] ;
60
57
return (
61
58
b &&
62
59
b . readOnly !== true && (
@@ -67,9 +64,8 @@ export const BodySchema = props => {
67
64
< b className = { b . deprecated && "line-through" } > { p } </ b >
68
65
</ div >
69
66
< div className = "leading-xs" >
70
- { data . requestBody . content . application_json . schema
71
- . required &&
72
- data . requestBody . content . application_json . schema . required . map (
67
+ { requiredProperties &&
68
+ requiredProperties . map (
73
69
( req , i ) => {
74
70
if ( p === req ) {
75
71
return (
@@ -115,18 +111,16 @@ export const BodySchema = props => {
115
111
)
116
112
) ;
117
113
} ) }
118
- { data . requestBody . content . application_json &&
119
- data . requestBody . content . application_json . schema &&
120
- data . requestBody . content . application_json . schema . allOf &&
121
- Object . keys ( data . requestBody . content . application_json . schema . allOf ) . map (
114
+ { schema . allOf &&
115
+ Object . keys ( schema . allOf ) . map (
122
116
a => {
123
- const s = data . requestBody . content . application_json . schema . allOf [ a ] ;
117
+ const s = schema . allOf [ a ] ;
124
118
return (
125
119
s . properties &&
126
120
Object . keys ( s . properties )
127
121
. filter (
128
122
v =>
129
- data . requestBody . content . application_json . schema . allOf [
123
+ schema . allOf [
130
124
v
131
125
] !== null
132
126
)
@@ -144,8 +138,8 @@ export const BodySchema = props => {
144
138
< b > { p } </ b >
145
139
</ div >
146
140
< div className = "leading-xs" >
147
- { s . required &&
148
- s . required . map ( ( req , i ) => {
141
+ { s . requiredProperties &&
142
+ s . requiredProperties . map ( ( req , i ) => {
149
143
if ( p === req ) {
150
144
return (
151
145
< span
@@ -160,9 +154,8 @@ export const BodySchema = props => {
160
154
} ) }
161
155
</ div >
162
156
< div className = "leading-xs" >
163
- { data . requestBody . content . application_json . schema
164
- . required &&
165
- data . requestBody . content . application_json . schema . required . map (
157
+ { requiredProperties &&
158
+ requiredProperties . map (
166
159
( req , i ) => {
167
160
if ( p === req ) {
168
161
return (
0 commit comments