UNPKG

@iexec/dataprotector

Version:

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

44 lines 1.99 kB
import { WorkflowError, handleIfProtocolError } from '../../utils/errors.js'; import { formatGrantedAccess } from '../../utils/formatGrantedAccess.js'; import { addressOrEnsSchema, booleanSchema, numberBetweenSchema, positiveNumberSchema, throwIfMissing, } from '../../utils/validators.js'; export const getGrantedAccess = async ({ iexec = throwIfMissing(), protectedData, authorizedApp, authorizedUser, isUserStrict = false, page, pageSize, bulkOnly = false, }) => { const vProtectedData = addressOrEnsSchema() .label('protectedData') .validateSync(protectedData); const vAuthorizedApp = addressOrEnsSchema() .label('authorizedApp') .validateSync(authorizedApp); const vAuthorizedUser = addressOrEnsSchema() .label('authorizedUser') .validateSync(authorizedUser); const vIsUserStrict = booleanSchema() .label('isUserStrict') .validateSync(isUserStrict); const vPage = positiveNumberSchema().label('page').validateSync(page); const vPageSize = numberBetweenSchema(10, 1000) .label('pageSize') .validateSync(pageSize); const vBulkOnly = booleanSchema().label('bulkOnly').validateSync(bulkOnly); try { const { count, orders } = await iexec.orderbook.fetchDatasetOrderbook({ dataset: vProtectedData || 'any', app: vAuthorizedApp || 'any', requester: vAuthorizedUser || 'any', isRequesterStrict: vIsUserStrict, isAppStrict: true, page: vPage, pageSize: vPageSize, bulkOnly: vBulkOnly, }); const grantedAccess = orders?.map((order) => formatGrantedAccess(order.order, order.remaining)); return { count, grantedAccess }; } catch (e) { handleIfProtocolError(e); throw new WorkflowError({ message: 'Failed to fetch granted access', errorCause: e, }); } }; //# sourceMappingURL=getGrantedAccess.js.map