Skip to content

Commit bc858ac

Browse files
committed
Add: Validation for Policy Upload
1 parent 0136227 commit bc858ac

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,10 +35,11 @@ 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-
38+
import APIMAlert from 'AppComponents/Shared/Alert';
3939

4040
const PREFIX = 'UploadPolicyDropzone';
4141

42+
4243
const classes = {
4344
dropZoneWrapper: `${PREFIX}-dropZoneWrapper`,
4445
acceptDrop: `${PREFIX}-acceptDrop`,
@@ -102,10 +103,23 @@ const UploadPolicyDropzone: FC<UploadPolicyDropzoneProps> = ({
102103
policyDefinitionFile,
103104
setPolicyDefinitionFile,
104105
}) => {
105-
106+
const intl = useIntl();
106107

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

111125
const renderPolicyFileDropzone = () => {

0 commit comments

Comments
 (0)