Spaces:
No application file
No application file
namespace MauticPlugin\MauticCrmBundle\Integration\Salesforce; | |
use MauticPlugin\MauticCrmBundle\Integration\Salesforce\Exception\NoObjectsToFetchException; | |
class QueryBuilder | |
{ | |
/** | |
* @throws NoObjectsToFetchException | |
*/ | |
public static function getLeadQuery(array $fields, array $ids): string | |
{ | |
if (empty($ids)) { | |
throw new NoObjectsToFetchException(); | |
} | |
$fieldString = self::getFieldString($fields); | |
$idString = implode("','", $ids); | |
return ($idString) ? "SELECT $fieldString from Lead where Id in ('$idString') and ConvertedContactId = NULL" : ''; | |
} | |
/** | |
* @throws NoObjectsToFetchException | |
*/ | |
public static function getContactQuery(array $fields, array $ids): string | |
{ | |
if (empty($ids)) { | |
throw new NoObjectsToFetchException(); | |
} | |
$fieldString = self::getFieldString($fields); | |
$idString = implode("','", $ids); | |
return ($idString) ? "SELECT $fieldString from Contact where Id in ('$idString')" : ''; | |
} | |
private static function getFieldString(array $fields): string | |
{ | |
$fields[] = 'Id'; | |
return implode(', ', array_unique($fields)); | |
} | |
} | |