Source of file MySalesforceContactConfigApi.php
Size: 3,642 Bytes - Last Modified: 2021-12-23T10:46:09+00:00
/var/www/docs.ssmods.com/process/src/code/Api/Contact/MySalesforceContactConfigApi.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 | <?php /** * configuration for adding / updating contact records */ class MySalesforceContactConfigApi extends Object { /** * @var array */ private static $site_wide_fields_to_send_on_creation = []; /** * @var array */ private static $site_wide_fields_to_send_on_update = []; /** * @var array */ private static $site_wide_filter_values = []; /** * @var array */ private static $run_time_fields_to_send_on_creation = []; /** * @var array */ private static $run_time_fields_to_send_on_update = []; /** * @var array */ private static $run_time_fields_for_filter = []; /** * @param array|DataList|string $mixed fields to send for creations */ public static function add_fields_to_send_on_creation($mixed) { $array = self::mixed_to_array($mixed); self::$run_time_fields_to_send_on_creation += $array; } /** * @param array|DataList|string $mixed fields to send for updates * * @return array */ public static function add_fields_to_send_on_update($mixed) { $array = self::mixed_to_array($mixed); self::$run_time_fields_to_send_on_update += $array; } /** * @param array|DataList|string $mixed fields to send as filters * * @return array */ public static function add_fields_to_use_for_filter($mixed) { $array = self::mixed_to_array($mixed); self::$run_time_fields_for_filter += $array; } /** * @param array|DataList|null $mixed fields to send * * @return array */ public static function get_fields_to_send_on_creation($mixed = null) { $array = self::mixed_to_array($mixed); return array_merge( Config::inst()->get('MySalesforceContactConfigApi', 'site_wide_fields_to_send_on_creation'), $array, self::$run_time_fields_to_send_on_creation ); } /** * @param array|DataList|null $mixed fields to send * * @return array */ public static function get_fields_to_send_on_update($mixed = null) { $array = self::mixed_to_array($mixed); return array_merge( Config::inst()->get('MySalesforceContactConfigApi', 'site_wide_fields_to_send_on_update'), $array, self::$run_time_fields_to_send_on_update ); } /** * @param array|DataList|null $mixed fields to send * * @return array|DataList|null */ public static function get_fields_for_filter($mixed = null) { $array = self::mixed_to_array($mixed); return array_merge( Config::inst()->get('MySalesforceContactConfigApi', 'site_wide_filter_values'), $array, self::$run_time_fields_for_filter ); } /** * @param DataList|array|string|null $mixed * * @return array */ protected static function mixed_to_array($mixed = null) { if ($mixed === null) { $array = []; } elseif ($mixed instanceof SS_List) { $array = []; foreach ($mixed as $object) { $array[trim($object->Key)] = $object->BetterValue(); } } elseif (is_string($mixed)) { $array = [$mixed]; } elseif (is_array($mixed)) { $array = $mixed; } else { $array = []; user_error('Variable ' . print_r($mixed, 1) . ' should be an array. Currently, it is a ' . gettype($mixed)); } return $array; } } |