Added boolean parameters to uri validation
Summary: Booleans must also be validated. These are denoted by {!boolParam}, as in they have a '!' symbol in front.
Reviewed By: danielbuechele
Differential Revision: D16802996
fbshipit-source-id: c03b858f0872dea0610e1d28aa9b48936f1117a6
This commit is contained in:
committed by
Facebook Github Bot
parent
c40a88b117
commit
fc01f5536e
@@ -10,6 +10,7 @@ import {Button, FlexColumn, Input, Sheet, styled, Glyph, colors} from 'flipper';
|
|||||||
import {
|
import {
|
||||||
replaceRequiredParametersWithValues,
|
replaceRequiredParametersWithValues,
|
||||||
parameterIsNumberType,
|
parameterIsNumberType,
|
||||||
|
parameterIsBooleanType,
|
||||||
validateParameter,
|
validateParameter,
|
||||||
liveEdit,
|
liveEdit,
|
||||||
} from '../util/uri';
|
} from '../util/uri';
|
||||||
@@ -113,6 +114,13 @@ export default (props: Props) => {
|
|||||||
!validateParameter(values[idx], paramater) ? (
|
!validateParameter(values[idx], paramater) ? (
|
||||||
<ErrorLabel>Parameter must be a number</ErrorLabel>
|
<ErrorLabel>Parameter must be a number</ErrorLabel>
|
||||||
) : null}
|
) : null}
|
||||||
|
{values[idx] &&
|
||||||
|
parameterIsBooleanType(paramater) &&
|
||||||
|
!validateParameter(values[idx], paramater) ? (
|
||||||
|
<ErrorLabel>
|
||||||
|
Parameter must be either 'true' or 'false'
|
||||||
|
</ErrorLabel>
|
||||||
|
) : null}
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
<URIContainer>{liveEdit(uri, values)}</URIContainer>
|
<URIContainer>{liveEdit(uri, values)}</URIContainer>
|
||||||
|
|||||||
@@ -11,7 +11,10 @@ import querystring from 'querystring';
|
|||||||
export const validateParameter = (value: string, parameter: string) => {
|
export const validateParameter = (value: string, parameter: string) => {
|
||||||
return (
|
return (
|
||||||
value &&
|
value &&
|
||||||
(parameterIsNumberType(parameter) ? !isNaN(parseInt(value, 10)) : true)
|
(parameterIsNumberType(parameter) ? !isNaN(parseInt(value, 10)) : true) &&
|
||||||
|
(parameterIsBooleanType(parameter)
|
||||||
|
? value === 'true' || value === 'false'
|
||||||
|
: true)
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -40,6 +43,11 @@ export const parameterIsNumberType = (parameter: string) => {
|
|||||||
return regExp.test(parameter);
|
return regExp.test(parameter);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const parameterIsBooleanType = (parameter: string) => {
|
||||||
|
const regExp = /^{(!|\?!)/g;
|
||||||
|
return regExp.test(parameter);
|
||||||
|
};
|
||||||
|
|
||||||
export const replaceRequiredParametersWithValues = (
|
export const replaceRequiredParametersWithValues = (
|
||||||
uri: string,
|
uri: string,
|
||||||
values: Array<string>,
|
values: Array<string>,
|
||||||
|
|||||||
Reference in New Issue
Block a user