UNPKG

@iexec/web3mail

Version:

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

42 lines 1.75 kB
import { NULL_ADDRESS } from 'iexec/utils'; import { ValidationError } from 'yup'; import { handleIfProtocolError, WorkflowError } from '../utils/errors.js'; import { addressSchema, campaignRequestSchema, throwIfMissing, } from '../utils/validators.js'; export const sendEmailCampaign = async ({ dataProtector = throwIfMissing(), workerpoolAddress = throwIfMissing(), campaignRequest, }) => { const vCampaignRequest = campaignRequestSchema() .required() .label('campaignRequest') .validateSync(campaignRequest); const vWorkerpoolAddress = addressSchema() .required() .label('workerpoolAddress') .validateSync(workerpoolAddress); if (vCampaignRequest.workerpool !== NULL_ADDRESS && vCampaignRequest.workerpool.toLowerCase() !== vWorkerpoolAddress.toLowerCase()) { throw new ValidationError("workerpoolAddress doesn't match campaignRequest workerpool"); } try { // Process the prepared bulk request const processBulkRequestResponse = await dataProtector.processBulkRequest({ bulkRequest: vCampaignRequest, workerpool: vWorkerpoolAddress, waitForResult: false, }); return processBulkRequestResponse; } catch (error) { // Protocol error detected, re-throwing as-is if (error?.isProtocolError === true) { throw error; } // Handle protocol errors - this will throw if it's an ApiCallError handleIfProtocolError(error); // For all other errors throw new WorkflowError({ message: 'Failed to sendEmailCampaign', errorCause: error, }); } }; //# sourceMappingURL=sendEmailCampaign.js.map