UNPKG

@iexec/dataprotector

Version:

This product enables users to confidentially store data–such as mail address, documents, personal information ...

26 lines (24 loc) 1.08 kB
import { WorkflowError } from '../../utils/errors.js'; import { grantedAccessSchema, throwIfMissing } from '../../utils/validators.js'; import { GrantedAccess, RevokedAccess } from '../types/index.js'; import { IExecConsumer } from '../types/internalTypes.js'; export const revokeOneAccess = async ({ iexec = throwIfMissing(), ...grantedAccess // rest always gives an object }: IExecConsumer & GrantedAccess): Promise<RevokedAccess> => { const vGrantedAccess = grantedAccessSchema() .required('The GrantedAccess is required to be revoked') .validateSync( Object.keys(grantedAccess).length === 0 ? undefined : grantedAccess // pass undefined if rest operator returns an empty object to trigger the 'required' check ) as GrantedAccess; try { const { remainingAccess, ...datasetOrder } = vGrantedAccess; const { txHash } = await iexec.order.cancelDatasetorder(datasetOrder); return { access: vGrantedAccess, txHash }; } catch (e) { throw new WorkflowError({ message: 'Failed to revoke access', errorCause: e, }); } };