1
0
mirror of synced 2024-11-25 23:06:08 +03:00
bitrix-module/intaro.retailcrm/lib/repository/hlrepository.php

68 lines
1.5 KiB
PHP

<?php
/**
* @category Integration
* @package Intaro\RetailCrm\Repository
* @author RetailCRM <integration@retailcrm.ru>
* @license MIT
* @link http://retailcrm.ru
* @see http://retailcrm.ru/docs
*/
namespace Intaro\RetailCrm\Repository;
use Bitrix\Main\ArgumentException;
use Bitrix\Main\ObjectPropertyException;
use Bitrix\Main\SystemException;
use Intaro\RetailCrm\Service\Hl;
use Logger;
/**
* Class HlRepository
* @package Intaro\RetailCrm\Repository
*/
class HlRepository
{
/**
* @var \Bitrix\Main\Entity\DataManager|string|null
*/
private $hl;
public function __construct($hlName)
{
$this->hl = Hl::getHlClassByTableName($hlName);
}
/**
* @param string|null $propertyValue
* @return array|null
*/
public function getDataByXmlId(?string $propertyValue): ?array
{
try {
$result = $this->hl::query()
->setSelect(['*'])
->where('UF_XML_ID', '=', $propertyValue)
->fetch();
if ($result === false) {
return null;
}
return $result;
} catch (ObjectPropertyException | ArgumentException | SystemException $exception) {
Logger::getInstance()->write($exception->getMessage(), 'repositoryErrors');
return null;
}
}
/**
* @return \Bitrix\Main\Entity\DataManager|string|null
*/
public function getHl()
{
return $this->hl;
}
}