Files
kupshop/bundles/KupShop/XMLFeedBundle/View/B2BInfoView.php
2025-08-02 16:30:27 +02:00

77 lines
2.0 KiB
PHP

<?php
namespace KupShop\XMLFeedBundle\View;
use Doctrine\ORM\EntityManagerInterface;
use KupShop\KupShopBundle\Views\View;
use KupShop\XMLFeedBundle\Util\XMLFeedUtil;
use Query\Operator;
use Symfony\Contracts\Service\Attribute\Required;
class B2BInfoView extends View
{
use \DatabaseCommunication;
/** @var EntityManagerInterface */
protected $em;
private XMLFeedUtil $xmlFeedUtil;
protected $template = 'XMLFeed/B2BInfo.tpl';
/**
* B2BInfoView constructor.
*/
public function __construct(EntityManagerInterface $em)
{
$this->em = $em;
}
#[Required]
final public function setXMLFeedUtil(XMLFeedUtil $xmlFeedUtil): void
{
$this->xmlFeedUtil = $xmlFeedUtil;
}
public function getTitle()
{
return translate('title', 'xmlfeed');
}
public function getEnabledFeeds()
{
$user = \User::getCurrentUser();
$enabledFeeds = [];
if ($user && findModule(\Modules::XML_FEEDS_B2B, \Modules::SUB_FEED_IDS)) {
$data = $user->getCustomData();
$defaultB2BFeeds = $this->xmlFeedUtil->getDefaultFeedIds();
$enabledFeedsIDs = array_unique(array_merge($defaultB2BFeeds, $data['b2b_feeds'] ?? []));
$qb = sqlQueryBuilder()->select('id, name, data')->from('feeds')
->where(Operator::inIntArray($enabledFeedsIDs, 'id'))
->orderBy('name')->execute();
foreach ($qb as $feed) {
$feedData = json_decode($feed['data'], true);
$enabledFeeds[$feed['id']] = [
'id' => $feed['id'],
'name' => $feed['name'],
'format' => $feedData['format'] ?? 'xml',
'data' => $feedData,
];
}
}
return $enabledFeeds;
}
public function fetchFeedToken()
{
$user = \User::getCurrentUser();
if ($user) {
return $user->feed_token;
}
return null;
}
}