box-ui-elements
Version:
Box UI Elements
61 lines • 1.93 kB
JavaScript
import { ACCESS_NONE } from '../../constants';
import { CONTENT_SHARING_SHARED_LINK_UPDATE_PARAMS } from './constants';
import { convertSharedLinkPermissions, convertSharedLinkSettings } from './utils';
export const createSharingService = ({
itemApiInstance,
onUpdateSharedLink,
onRemoveSharedLink,
options
}) => {
const {
id,
permissions
} = options;
const changeSharedLinkAccess = async access => {
return itemApiInstance.share({
id,
permissions
}, access, onUpdateSharedLink, {}, CONTENT_SHARING_SHARED_LINK_UPDATE_PARAMS);
};
const changeSharedLinkPermission = async permissionLevel => {
return itemApiInstance.updateSharedLink({
id,
permissions
}, {
permissions: convertSharedLinkPermissions(permissionLevel)
}, onUpdateSharedLink, {}, CONTENT_SHARING_SHARED_LINK_UPDATE_PARAMS);
};
const updateSharedLink = async sharedLinkSettings => {
const {
access,
isDownloadAvailable,
serverUrl
} = options;
return itemApiInstance.updateSharedLink({
id,
permissions
}, convertSharedLinkSettings(sharedLinkSettings, access, isDownloadAvailable, serverUrl), onUpdateSharedLink, {}, CONTENT_SHARING_SHARED_LINK_UPDATE_PARAMS);
};
const createSharedLink = async () => {
return itemApiInstance.share({
id,
permissions
}, undefined,
// if "access" is undefined, the backend will set the default access level for the shared link
onUpdateSharedLink, {}, CONTENT_SHARING_SHARED_LINK_UPDATE_PARAMS);
};
const deleteSharedLink = async () => {
return itemApiInstance.share({
id,
permissions
}, ACCESS_NONE, onRemoveSharedLink, {}, CONTENT_SHARING_SHARED_LINK_UPDATE_PARAMS);
};
return {
createSharedLink,
changeSharedLinkAccess,
changeSharedLinkPermission,
deleteSharedLink,
updateSharedLink
};
};
//# sourceMappingURL=sharingService.js.map