From 1b6cb7d1bf2d1348b986385eca896a949d1a691a Mon Sep 17 00:00:00 2001 From: Vladimir Gorej Date: Tue, 7 Jul 2020 15:04:35 +0200 Subject: [PATCH] revert: feat: Allow to skip submitting empty values in form data (#5830) This reverts commit b9b32c9c93f712bdef6735a404f20481ec49ff45. Refs #6203 #5830 --- .../components/parameter-include-empty.jsx | 11 ++++-- src/core/components/parameter-row.jsx | 7 ++-- src/core/components/parameters/parameters.jsx | 8 ---- src/core/plugins/oas3/actions.js | 8 ---- .../plugins/oas3/components/request-body.jsx | 38 ++++++------------- src/core/plugins/oas3/reducers.js | 5 --- src/core/plugins/oas3/selectors.js | 7 +--- src/core/plugins/spec/actions.js | 5 +-- src/core/utils.js | 12 ------ src/style/_table.scss | 1 - 10 files changed, 27 insertions(+), 75 deletions(-) diff --git a/src/core/components/parameter-include-empty.jsx b/src/core/components/parameter-include-empty.jsx index ef56663f..9e90df30 100644 --- a/src/core/components/parameter-include-empty.jsx +++ b/src/core/components/parameter-include-empty.jsx @@ -1,19 +1,24 @@ import React from "react" import cx from "classnames" import PropTypes from "prop-types" +import ImPropTypes from "react-immutable-proptypes" -export const ParameterIncludeEmpty = ({ isIncluded, onChange, isDisabled }) => { +export const ParameterIncludeEmpty = ({ param, isIncluded, onChange, isDisabled }) => { const onCheckboxChange = e => { onChange(e.target.checked) } - return + } ParameterIncludeEmpty.propTypes = { + param: ImPropTypes.map.isRequired, isIncluded: PropTypes.bool.isRequired, isDisabled: PropTypes.bool.isRequired, onChange: PropTypes.func.isRequired, diff --git a/src/core/components/parameter-row.jsx b/src/core/components/parameter-row.jsx index 9c49dedb..12db1f67 100644 --- a/src/core/components/parameter-row.jsx +++ b/src/core/components/parameter-row.jsx @@ -3,7 +3,7 @@ import { Map, List } from "immutable" import PropTypes from "prop-types" import ImPropTypes from "react-immutable-proptypes" import win from "core/window" -import { getSampleSchema, getExtensions, getCommonExtensions, numberToString, stringify, isEmptyValue } from "core/utils" +import { getSampleSchema, getExtensions, getCommonExtensions, numberToString, stringify } from "core/utils" import getParameterSchema from "../../helpers/get-parameter-schema.js" export default class ParameterRow extends Component { @@ -343,11 +343,12 @@ export default class ParameterRow extends Component { } { - !bodyParam && isExecute && param.get("allowEmptyValue") ? + !bodyParam && isExecute ? + isDisabled={value && value.size !== 0} + param={param} /> : null } diff --git a/src/core/components/parameters/parameters.jsx b/src/core/components/parameters/parameters.jsx index 0f574b32..630d25ec 100644 --- a/src/core/components/parameters/parameters.jsx +++ b/src/core/components/parameters/parameters.jsx @@ -196,7 +196,6 @@ export default class Parameters extends Component { specPath={specPath.slice(0, -1).push("requestBody")} requestBody={requestBody} requestBodyValue={oas3Selectors.requestBodyValue(...pathMethod)} - requestBodyInclusionSetting={oas3Selectors.requestBodyInclusionSetting(...pathMethod)} isExecute={isExecute} activeExamplesKey={oas3Selectors.activeExamplesMember( ...pathMethod, @@ -223,13 +222,6 @@ export default class Parameters extends Component { } oas3Actions.setRequestBodyValue({ value, pathMethod }) }} - onChangeIncludeEmpty={(name, value) => { - oas3Actions.setRequestBodyInclusion({ - pathMethod, - value, - name, - }) - }} contentType={oas3Selectors.requestContentType(...pathMethod)}/> diff --git a/src/core/plugins/oas3/actions.js b/src/core/plugins/oas3/actions.js index 0736489a..0985c784 100644 --- a/src/core/plugins/oas3/actions.js +++ b/src/core/plugins/oas3/actions.js @@ -3,7 +3,6 @@ export const UPDATE_SELECTED_SERVER = "oas3_set_servers" export const UPDATE_REQUEST_BODY_VALUE = "oas3_set_request_body_value" -export const UPDATE_REQUEST_BODY_INCLUSION = "oas3_set_request_body_inclusion" export const UPDATE_ACTIVE_EXAMPLES_MEMBER = "oas3_set_active_examples_member" export const UPDATE_REQUEST_CONTENT_TYPE = "oas3_set_request_content_type" export const UPDATE_RESPONSE_CONTENT_TYPE = "oas3_set_response_content_type" @@ -23,13 +22,6 @@ export function setRequestBodyValue ({ value, pathMethod }) { } } -export function setRequestBodyInclusion ({ value, pathMethod, name }) { - return { - type: UPDATE_REQUEST_BODY_INCLUSION, - payload: { value, pathMethod, name } - } -} - export function setActiveExamplesMember ({ name, pathMethod, contextType, contextName }) { return { type: UPDATE_ACTIVE_EXAMPLES_MEMBER, diff --git a/src/core/plugins/oas3/components/request-body.jsx b/src/core/plugins/oas3/components/request-body.jsx index b21acc4c..e6ca86da 100644 --- a/src/core/plugins/oas3/components/request-body.jsx +++ b/src/core/plugins/oas3/components/request-body.jsx @@ -2,7 +2,7 @@ import React from "react" import PropTypes from "prop-types" import ImPropTypes from "react-immutable-proptypes" import { Map, OrderedMap, List } from "immutable" -import { getCommonExtensions, getSampleSchema, stringify, isEmptyValue } from "core/utils" +import { getCommonExtensions, getSampleSchema, stringify } from "core/utils" function getDefaultRequestBodyValue(requestBody, mediaType, activeExamplesKey) { let mediaTypeValue = requestBody.getIn(["content", mediaType]) @@ -37,7 +37,6 @@ function getDefaultRequestBodyValue(requestBody, mediaType, activeExamplesKey) { const RequestBody = ({ requestBody, requestBodyValue, - requestBodyInclusionSetting, getComponent, getConfigs, specSelectors, @@ -46,7 +45,6 @@ const RequestBody = ({ isExecute, specPath, onChange, - onChangeIncludeEmpty, activeExamplesKey, updateActiveExamplesKey, }) => { @@ -60,7 +58,6 @@ const RequestBody = ({ const HighlightCode = getComponent("highlightCode") const ExamplesSelectValueRetainer = getComponent("ExamplesSelectValueRetainer") const Example = getComponent("Example") - const ParameterIncludeEmpty = getComponent("ParameterIncludeEmpty") const { showCommonExtensions } = getConfigs() @@ -158,26 +155,17 @@ const RequestBody = ({ - {isExecute ?
- { - onChange(value, [key]) - }} - /> - {required ? null : ( - onChangeIncludeEmpty(key, value)} - isIncluded={requestBodyInclusionSetting.get(key)} - isDisabled={!isEmptyValue(currentValue)} - /> - )} -
: null } + {isExecute ?
{ + onChange(value, [key]) + }} + />
: null } }) @@ -255,7 +243,6 @@ const RequestBody = ({ RequestBody.propTypes = { requestBody: ImPropTypes.orderedMap.isRequired, requestBodyValue: ImPropTypes.orderedMap.isRequired, - requestBodyInclusionSetting: ImPropTypes.Map.isRequired, getComponent: PropTypes.func.isRequired, getConfigs: PropTypes.func.isRequired, fn: PropTypes.object.isRequired, @@ -263,7 +250,6 @@ RequestBody.propTypes = { contentType: PropTypes.string, isExecute: PropTypes.bool.isRequired, onChange: PropTypes.func.isRequired, - onChangeIncludeEmpty: PropTypes.func.isRequired, specPath: PropTypes.array.isRequired, activeExamplesKey: PropTypes.string, updateActiveExamplesKey: PropTypes.func, diff --git a/src/core/plugins/oas3/reducers.js b/src/core/plugins/oas3/reducers.js index d9916a2e..c37b637a 100644 --- a/src/core/plugins/oas3/reducers.js +++ b/src/core/plugins/oas3/reducers.js @@ -1,7 +1,6 @@ import { UPDATE_SELECTED_SERVER, UPDATE_REQUEST_BODY_VALUE, - UPDATE_REQUEST_BODY_INCLUSION, UPDATE_ACTIVE_EXAMPLES_MEMBER, UPDATE_REQUEST_CONTENT_TYPE, UPDATE_SERVER_VARIABLE_VALUE, @@ -17,10 +16,6 @@ export default { let [path, method] = pathMethod return state.setIn( [ "requestData", path, method, "bodyValue" ], value) }, - [UPDATE_REQUEST_BODY_INCLUSION]: (state, { payload: { value, pathMethod, name } } ) =>{ - let [path, method] = pathMethod - return state.setIn( [ "requestData", path, method, "bodyInclusion", name ], value) - }, [UPDATE_ACTIVE_EXAMPLES_MEMBER]: (state, { payload: { name, pathMethod, contextType, contextName } } ) =>{ let [path, method] = pathMethod return state.setIn( [ "examples", path, method, contextType, contextName, "activeExample" ], name) diff --git a/src/core/plugins/oas3/selectors.js b/src/core/plugins/oas3/selectors.js index 1bdc5589..432831e2 100644 --- a/src/core/plugins/oas3/selectors.js +++ b/src/core/plugins/oas3/selectors.js @@ -1,4 +1,4 @@ -import { OrderedMap, Map } from "immutable" +import { OrderedMap } from "immutable" import { isOAS3 as isOAS3Helper } from "./helpers" @@ -26,11 +26,6 @@ export const requestBodyValue = onlyOAS3((state, path, method) => { } ) -export const requestBodyInclusionSetting = onlyOAS3((state, path, method) => { - return state.getIn(["requestData", path, method, "bodyInclusion"]) || Map() - } -) - export const activeExamplesMember = onlyOAS3((state, path, method, type, name) => { return state.getIn(["examples", path, method, type, name, "activeExample"]) || null } diff --git a/src/core/plugins/spec/actions.js b/src/core/plugins/spec/actions.js index bd88db44..b9814e5a 100644 --- a/src/core/plugins/spec/actions.js +++ b/src/core/plugins/spec/actions.js @@ -5,7 +5,7 @@ import serializeError from "serialize-error" import isString from "lodash/isString" import debounce from "lodash/debounce" import set from "lodash/set" -import { isJSONObject, paramToValue, isEmptyValue } from "core/utils" +import { isJSONObject, paramToValue } from "core/utils" // Actions conform to FSA (flux-standard-actions) // {type: string,payload: Any|Error, meta: obj, error: bool} @@ -401,12 +401,11 @@ export const executeRequest = (req) => req.requestContentType = oas3Selectors.requestContentType(pathName, method) req.responseContentType = oas3Selectors.responseContentType(pathName, method) || "*/*" const requestBody = oas3Selectors.requestBodyValue(pathName, method) - const requestBodyInclusionSetting = oas3Selectors.requestBodyInclusionSetting(pathName, method) if(isJSONObject(requestBody)) { req.requestBody = JSON.parse(requestBody) } else if(requestBody && requestBody.toJS) { - req.requestBody = requestBody.filter((value, key) => !isEmptyValue(value) || requestBodyInclusionSetting.get(key)).toJS() + req.requestBody = requestBody.toJS() } else{ req.requestBody = requestBody } diff --git a/src/core/utils.js b/src/core/utils.js index f83f433b..407efcca 100644 --- a/src/core/utils.js +++ b/src/core/utils.js @@ -956,15 +956,3 @@ function b64toB64UrlEncoded(str) { .replace(/\//g, "_") .replace(/=/g, "") } - -export const isEmptyValue = (value) => { - if (!value) { - return true - } - - if (isImmutable(value) && value.isEmpty()) { - return true - } - - return false -} diff --git a/src/style/_table.scss b/src/style/_table.scss index c155a681..dde30937 100644 --- a/src/style/_table.scss +++ b/src/style/_table.scss @@ -157,7 +157,6 @@ table } .parameter__empty_value_toggle { - display: block; font-size: 13px; padding-top: 5px; padding-bottom: 12px;