Skip to content

Commit

Permalink
Merge pull request #903 from SavinduDimal/org-feature-new-page-valida…
Browse files Browse the repository at this point in the history
…tions

[Publisher] Add validations to organization feature
  • Loading branch information
SavinduDimal authored Feb 14, 2025
2 parents 397f171 + 31e2c64 commit 11a99dd
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import Grid from '@mui/material/Grid';
import Typography from '@mui/material/Typography';
import Button from '@mui/material/Button';
import { FormattedMessage, injectIntl, useIntl } from 'react-intl';
import { CircularProgress } from '@mui/material';
import { CircularProgress, Paper, Box, FormLabel } from '@mui/material';
import Alert from 'AppComponents/Shared/Alert';
import API from 'AppData/api';
import { withAPI, useAPI } from 'AppComponents/Apis/Details/components/ApiContext';
Expand All @@ -47,10 +47,10 @@ const classes = {
helpIcon: `${PREFIX}-helpIcon`,
htmlTooltip: `${PREFIX}-htmlTooltip`,
buttonSection: `${PREFIX}-buttonSection`,
emptyBox: `${PREFIX}-emptyBox`
emptyBox: `${PREFIX}-emptyBox`,
shareAPIPaper: `${PREFIX}-shareAPIPaper`
}


const Root = styled('div')((
{
theme
Expand All @@ -62,6 +62,11 @@ const Root = styled('div')((

[`& .${classes.emptyBox}`]: {
marginTop: theme.spacing(2),
},

[`& .${classes.shareAPIPaper}`]: {
padding: theme.spacing(2),
marginTop: theme.spacing(2),
}
}));

Expand Down Expand Up @@ -175,28 +180,44 @@ function ShareAPI(props) {
defaultMessage='Share API'
/>
</Typography>
<SharedOrganizations
api={api}
organizations={organizations}
visibleOrganizations={visibleOrganizations}
setVisibleOrganizations = {setVisibleOrganizations}
selectionMode = {selectionMode}
setSelectionMode = {setSelectionMode}
/>
{(api.gatewayVendor === 'wso2') &&
(
<>
{organizations?.list?.length > 0 && selectionMode !== "none" &&
<OrganizationSubscriptionPoliciesManage
api={api}
organizations={organizations.list}
visibleOrganizations={visibleOrganizations}
organizationPolicies={organizationPolicies}
setOrganizationPolicies={setOrganizationPolicies}
selectionMode = {selectionMode}
/>
}
</>
{organizations?.list?.length === 0 ? (
<Paper className={classes.shareAPIPaper}>
<Box display='flex' alignItems='center' >
<FormLabel component='legend' style={{ marginTop: 8, marginBottom: 8}}>
<FormattedMessage
id='Apis.Details.Configuration.components.Share.API.no.organizations'
defaultMessage='No organizations are currently registered under
your current organization to share the API.'
/>
</FormLabel>
</Box>
</Paper>
) : (
<div>
<SharedOrganizations
api={api}
organizations={organizations}
visibleOrganizations={visibleOrganizations}
setVisibleOrganizations = {setVisibleOrganizations}
selectionMode = {selectionMode}
setSelectionMode = {setSelectionMode}
/>
{(api.gatewayVendor === 'wso2') &&
(
<>
{organizations?.list?.length > 0 && selectionMode !== "none" &&
<OrganizationSubscriptionPoliciesManage
api={api}
organizations={organizations.list}
visibleOrganizations={visibleOrganizations}
organizationPolicies={organizationPolicies}
setOrganizationPolicies={setOrganizationPolicies}
selectionMode = {selectionMode}
/>
}
</>
)}
</div>
)}
{(api.gatewayVendor === 'wso2') && (
<Grid
Expand All @@ -211,7 +232,7 @@ function ShareAPI(props) {
type='submit'
variant='contained'
color='primary'
disabled={updateInProgress || api.isRevision
disabled={organizations?.list?.length === 0 || updateInProgress || api.isRevision
|| isRestricted(['apim:api_create', 'apim:api_publish'], api)}
onClick={() => handleShareAPISave()}
id='share-api-save-btn'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,19 @@ const APIDetailsTopMenu = (props) => {
}),
};

const [userOrg, setUserOrg] = useState(null);

useEffect(() => {
new API()
.getUserOrganizationInfo()
.then((result) => {
setUserOrg(result.body.organizationId);
})
.catch((error) => {
throw error;
});
}, []);

/**
* The component for advanced endpoint configurations.
* @param {string} name The name of the
Expand Down Expand Up @@ -467,7 +480,7 @@ const APIDetailsTopMenu = (props) => {
)}
{/* Page error banner */}
{/* end of Page error banner */}
{api.apiType !== API.CONSTS.APIProduct && isVisibleInStore
{api.apiType !== API.CONSTS.APIProduct && isVisibleInStore && userOrg
? <>
<ShareButton buttonClass={classes.viewInStoreLauncher}
api={api} isAPIProduct={isAPIProduct} />
Expand Down
9 changes: 9 additions & 0 deletions portals/publisher/src/main/webapp/source/src/app/data/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -1457,6 +1457,15 @@ class API extends Resource {
});
}

/**
* Get user organization information
*/
getUserOrganizationInfo() {
return this.client.then((client) => {
return client.apis.Users.organizationInformation(this._requestMetaData());
});
}

addDocument(api_id, body) {
const promised_addDocument = this.client.then(client => {
const payload = {
Expand Down

0 comments on commit 11a99dd

Please sign in to comment.