File size: 1,055 Bytes
d2897cd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php

namespace MauticPlugin\MauticCrmBundle\Integration\Salesforce\Helper;

class StateValidationHelper
{
    /**
     * @var string[]
     */
    private static array $supportedCountriesWithStates = [
        'United States',
        'Canada',
        'Australia',
        'Brazil',
        'China',
        'India',
        'Ireland',
        'Italy',
        'Mexico',
    ];

    /**
     * Out of the box SF only supports states for the following countries. So in order to prevent SF from rejecting the entire payload, we'll
     * only send state if it is supported out of the box by SF.
     *
     * @return array
     */
    public static function validate(array $mappedData)
    {
        if (!isset($mappedData['State'])) {
            return $mappedData;
        }

        if (
            !isset($mappedData['Country'])
            || !in_array($mappedData['Country'], self::$supportedCountriesWithStates)
        ) {
            unset($mappedData['State']);

            return $mappedData;
        }

        return $mappedData;
    }
}