Skip to content

Commit cee22f4

Browse files
committed
Add: Validation for Policy Upload
1 parent 97c6cb1 commit cee22f4

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

portals/publisher/src/main/webapp/source/src/app/components/Apis/Details/Policies/PolicyForm/UploadPolicyDropzone.tsx

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import { styled } from '@mui/material/styles';
2121
import { List, IconButton , Theme } from '@mui/material';
2222
import Typography from '@mui/material/Typography';
2323
import Box from '@mui/material/Box';
24-
import { FormattedMessage } from 'react-intl';
24+
import { FormattedMessage, useIntl } from 'react-intl';
2525
import ListItem from '@mui/material/ListItem';
2626
import ListItemAvatar from '@mui/material/ListItemAvatar';
2727
import ListItemSecondaryAction from '@mui/material/ListItemSecondaryAction';
@@ -35,11 +35,12 @@ import clsx from 'clsx';
3535
import Icon from '@mui/material/Icon';
3636
import { HelpOutline } from '@mui/icons-material';
3737
import { green, red } from '@mui/material/colors';
38+
import APIMAlert from 'AppComponents/Shared/Alert';
3839
import { GATEWAY_TYPE_LABELS } from './SourceDetails';
3940

40-
4141
const PREFIX = 'UploadPolicyDropzone';
4242

43+
4344
const classes = {
4445
dropZoneWrapper: `${PREFIX}-dropZoneWrapper`,
4546
acceptDrop: `${PREFIX}-acceptDrop`,
@@ -105,10 +106,23 @@ const UploadPolicyDropzone: FC<UploadPolicyDropzoneProps> = ({
105106
setPolicyDefinitionFile,
106107
gateway,
107108
}) => {
108-
109+
const intl = useIntl();
109110

110111
const handleDrop = (policyDefinition: any) => {
111-
setPolicyDefinitionFile(policyDefinition);
112+
if(policyDefinition===null || policyDefinition===undefined) {
113+
APIMAlert.error(intl.formatMessage({
114+
id: 'Uploading.Policies.Error',
115+
defaultMessage: 'Incompatible file type',
116+
}));
117+
}
118+
if (policyDefinition[0].name.endsWith('.j2') || policyDefinition[0].name.endsWith('.xml')) {
119+
setPolicyDefinitionFile(policyDefinition);
120+
} else {
121+
APIMAlert.error(intl.formatMessage({
122+
id: 'Uploading.Policies.Error',
123+
defaultMessage: 'Incompatible file type',
124+
}));
125+
}
112126
};
113127

114128
const renderPolicyFileDropzone = () => {

0 commit comments

Comments
 (0)