in src/view/actions/sendEventsComponents/validate.js [4:104]
export default (values) => {
const errors = {};
if (values.isTestEvent && !values.testEventCode) {
errors.testEventCode = {
message: 'To send a test event, Please enter a Test Event Code',
type: 'required'
};
}
if (!values.eventName) {
errors.eventName = {
message: 'Please specify an event name',
type: 'required'
};
}
if (!values.eventTime) {
errors.eventTime = {
message: 'Please specify then event time',
type: 'required'
};
}
if (values.clientUserAgent && !values.clientIpAddress) {
errors.clientIpAddress = {
message: 'IP address is required if user agent is provided',
type: 'required'
}
}
if (!values.clientUserAgent && values.clientIpAddress) {
errors.clientUserAgent = {
message: 'User agent is required if IP address is provided',
type: 'required'
}
}
if (
values.actionSource &&
values.actionSource.toLowerCase() === 'website'
&& !values.clientUserAgent
) {
errors.clientUserAgent = {
message: 'For website events, please specify the Client User Agent',
type: 'required'
};
}
if (
values.actionSource &&
values.actionSource.toLowerCase() === 'website'
&& !values.clientIpAddress
) {
errors.clientIpAddress = {
message: 'For website events, please specify the Client IP Address',
type: 'required'
};
}
if (
values.actionSource &&
values.actionSource.toLowerCase() === 'website'
&& !values.eventSourceUrl
) {
errors.eventSourceUrl = {
message: 'For website events, please specify the Event Source URL',
type: 'required'
};
}
if (!values.actionSource) {
errors.actionSource = {
message: 'Please specify the Action Source',
type: 'required'
};
}
if (typeof values.customData === 'string' && !values.customData.includes("{{")) {
try {
const payload = JSON.parse(values.customData);
if (
values.eventName && values.eventName.toLowerCase() === 'purchase' &&
!payload.hasOwnProperty('currency') || !payload.hasOwnProperty('value')
) {
errors.customData = {
message: 'The parameters "currency" and "value" are required for Purchase events',
type: 'required'
}
}
} catch (e) {
errors.customData = {
message: 'Please enter a valid JSON payload',
type: 'required'
};
}
}
return errors;
};