diff --git a/src/core/components/array-model.jsx b/src/core/components/array-model.jsx
index 7b6f0d72..44730ab8 100644
--- a/src/core/components/array-model.jsx
+++ b/src/core/components/array-model.jsx
@@ -15,7 +15,9 @@ export default class ArrayModel extends Component {
required: PropTypes.bool,
expandDepth: PropTypes.number,
specPath: ImPropTypes.list.isRequired,
- depth: PropTypes.number
+ depth: PropTypes.number,
+ includeReadOnly: PropTypes.bool,
+ includeWriteOnly: PropTypes.bool,
}
render(){
diff --git a/src/core/components/model-example.jsx b/src/core/components/model-example.jsx
index 379b01b8..b7498ebd 100644
--- a/src/core/components/model-example.jsx
+++ b/src/core/components/model-example.jsx
@@ -11,6 +11,8 @@ export default class ModelExample extends React.Component {
isExecute: PropTypes.bool,
getConfigs: PropTypes.func.isRequired,
specPath: ImPropTypes.list.isRequired,
+ includeReadOnly: PropTypes.bool,
+ includeWriteOnly: PropTypes.bool,
}
constructor(props, context) {
@@ -52,7 +54,7 @@ export default class ModelExample extends React.Component {
}
render() {
- let { getComponent, specSelectors, schema, example, isExecute, getConfigs, specPath } = this.props
+ let { getComponent, specSelectors, schema, example, isExecute, getConfigs, specPath, includeReadOnly, includeWriteOnly } = this.props
let { defaultModelExpandDepth } = getConfigs()
const ModelWrapper = getComponent("ModelWrapper")
const HighlightCode = getComponent("highlightCode")
@@ -84,7 +86,9 @@ export default class ModelExample extends React.Component {
getConfigs={ getConfigs }
specSelectors={ specSelectors }
expandDepth={ defaultModelExpandDepth }
- specPath={specPath} />
+ specPath={specPath}
+ includeReadOnly = {includeReadOnly}
+ includeWriteOnly = {includeWriteOnly}/>
}
diff --git a/src/core/components/model-wrapper.jsx b/src/core/components/model-wrapper.jsx
index f48960ce..8859ac42 100644
--- a/src/core/components/model-wrapper.jsx
+++ b/src/core/components/model-wrapper.jsx
@@ -15,7 +15,9 @@ export default class ModelWrapper extends Component {
specSelectors: PropTypes.object.isRequired,
expandDepth: PropTypes.number,
layoutActions: PropTypes.object,
- layoutSelectors: PropTypes.object.isRequired
+ layoutSelectors: PropTypes.object.isRequired,
+ includeReadOnly: PropTypes.bool,
+ includeWriteOnly: PropTypes.bool,
}
getSchemaBasePath = () => {
diff --git a/src/core/components/model.jsx b/src/core/components/model.jsx
index fa676ef1..e72edbd6 100644
--- a/src/core/components/model.jsx
+++ b/src/core/components/model.jsx
@@ -16,6 +16,8 @@ export default class Model extends ImmutablePureComponent {
expandDepth: PropTypes.number,
depth: PropTypes.number,
specPath: ImPropTypes.list.isRequired,
+ includeReadOnly: PropTypes.bool,
+ includeWriteOnly: PropTypes.bool,
}
getModelName =( ref )=> {
@@ -34,7 +36,8 @@ export default class Model extends ImmutablePureComponent {
}
render () {
- let { getComponent, getConfigs, specSelectors, schema, required, name, isRef, specPath, displayName } = this.props
+ let { getComponent, getConfigs, specSelectors, schema, required, name, isRef, specPath, displayName,
+ includeReadOnly, includeWriteOnly} = this.props
const ObjectModel = getComponent("ObjectModel")
const ArrayModel = getComponent("ArrayModel")
const PrimitiveModel = getComponent("PrimitiveModel")
@@ -70,7 +73,9 @@ export default class Model extends ImmutablePureComponent {
schema={ schema }
name={ name }
deprecated={deprecated}
- isRef={ isRef } />
+ isRef={ isRef }
+ includeReadOnly = {includeReadOnly}
+ includeWriteOnly = {includeWriteOnly}/>
case "array":
return
+ required={ required }
+ includeReadOnly = {includeReadOnly}
+ includeWriteOnly = {includeWriteOnly}/>
case "string":
case "number":
case "integer":
diff --git a/src/core/components/models.jsx b/src/core/components/models.jsx
index fa421f3b..1e779ced 100644
--- a/src/core/components/models.jsx
+++ b/src/core/components/models.jsx
@@ -90,7 +90,9 @@ export default class Models extends Component {
specSelectors={ specSelectors }
getConfigs = {getConfigs}
layoutSelectors = {layoutSelectors}
- layoutActions = {layoutActions}/>
+ layoutActions = {layoutActions}
+ includeReadOnly = {true}
+ includeWriteOnly = {true}/>
const title =
diff --git a/src/core/components/object-model.jsx b/src/core/components/object-model.jsx
index d52fcb0c..a50478d1 100644
--- a/src/core/components/object-model.jsx
+++ b/src/core/components/object-model.jsx
@@ -19,12 +19,14 @@ export default class ObjectModel extends Component {
isRef: PropTypes.bool,
expandDepth: PropTypes.number,
depth: PropTypes.number,
- specPath: ImPropTypes.list.isRequired
+ specPath: ImPropTypes.list.isRequired,
+ includeReadOnly: PropTypes.bool,
+ includeWriteOnly: PropTypes.bool,
}
render(){
let { schema, name, displayName, isRef, getComponent, getConfigs, depth, onToggle, expanded, specPath, ...otherProps } = this.props
- let { specSelectors,expandDepth } = otherProps
+ let { specSelectors,expandDepth, includeReadOnly, includeWriteOnly} = otherProps
const { isOAS3 } = specSelectors
if(!schema) {
@@ -87,7 +89,12 @@ export default class ObjectModel extends Component {
}
{
- !(properties && properties.size) ? null : properties.entrySeq().map(
+ !(properties && properties.size) ? null : properties.entrySeq().filter(
+ ([, value]) => {
+ return (!value.get("readOnly") || includeReadOnly) &&
+ (!value.get("writeOnly") || includeWriteOnly)
+ }
+ ).map(
([key, value]) => {
let isDeprecated = isOAS3() && value.get("deprecated")
let isRequired = List.isList(requiredProperties) && requiredProperties.contains(key)
diff --git a/src/core/components/parameter-row.jsx b/src/core/components/parameter-row.jsx
index 59fe8954..dae0aece 100644
--- a/src/core/components/parameter-row.jsx
+++ b/src/core/components/parameter-row.jsx
@@ -105,6 +105,7 @@ export default class ParameterRow extends Component {
// getSampleSchema could return null
const generatedSampleValue = schema ? getSampleSchema(schema.toJS(), parameterMediaType, {
+
includeWriteOnly: true
}) : null
@@ -331,7 +332,8 @@ export default class ParameterRow extends Component {
isExecute={ isExecute }
specSelectors={ specSelectors }
schema={ schema }
- example={ bodyParam }/>
+ example={ bodyParam }
+ includeWriteOnly={ true }/>
: null
}
diff --git a/src/core/components/response.jsx b/src/core/components/response.jsx
index e3801290..afdef9fd 100644
--- a/src/core/components/response.jsx
+++ b/src/core/components/response.jsx
@@ -218,7 +218,8 @@ export default class Response extends React.Component {
getConfigs={ getConfigs }
specSelectors={ specSelectors }
schema={ fromJSOrdered(schema) }
- example={ example }/>
+ example={ example }
+ includeReadOnly={ true }/>
) : null }
{ isOAS3 && examplesForMediaType ? (
diff --git a/src/core/plugins/oas3/components/request-body.jsx b/src/core/plugins/oas3/components/request-body.jsx
index c02a07e8..3b88299c 100644
--- a/src/core/plugins/oas3/components/request-body.jsx
+++ b/src/core/plugins/oas3/components/request-body.jsx
@@ -237,6 +237,7 @@ const RequestBody = ({
)}
/>
}
+ includeWriteOnly={true}
/>
)
}
diff --git a/src/core/plugins/oas3/wrap-components/model.jsx b/src/core/plugins/oas3/wrap-components/model.jsx
index b350b703..2476a529 100644
--- a/src/core/plugins/oas3/wrap-components/model.jsx
+++ b/src/core/plugins/oas3/wrap-components/model.jsx
@@ -10,7 +10,9 @@ class ModelComponent extends Component {
getComponent: PropTypes.func.isRequired,
getConfigs: PropTypes.func.isRequired,
specSelectors: PropTypes.object.isRequired,
- expandDepth: PropTypes.number
+ expandDepth: PropTypes.number,
+ includeReadOnly: PropTypes.bool,
+ includeWriteOnly: PropTypes.bool,
}
render(){