/** * {@inheritdoc} */ public function initialize() { $this->channels = $this->channelRepository->findAll(); foreach ($this->attributeRepository->getNonIdentifierAttributes() as $attribute) { $this->attributes[(string) $attribute->getGroup()][] = $attribute; foreach ($this->channels as $channel) { $this->addAttributeRequirement($this->factory->createAttributeRequirement($attribute, $channel, false)); } } }
/** * @return ChannelInterface[] */ protected function getChannels() { if (null === $this->channels) { $this->channels = $this->channelRepository->findAll(); } return $this->channels; }
/** * Get channel choices with user channel code first * * @return string[] */ public function getChannelChoicesWithUserChannel() { $channels = $this->channelRepository->findAll(); $channelChoices = $this->choicesBuilder->buildChoices($channels); $userChannelCode = $this->getUserChannelCode(); if (array_key_exists($userChannelCode, $channelChoices)) { return [$userChannelCode => $channelChoices[$userChannelCode]] + $channelChoices; } return $channelChoices; }
/** * Get all channels * * @return array */ protected function getChannels() { if (null === $this->channels) { $this->channels = []; $channels = $this->channelRepository->findAll(); foreach ($channels as $channel) { $this->channels[$channel->getCode()] = $channel; } } return $this->channels; }
function it_initializes_attribute_requirements_with_all_channels_and_attributes_in_the_PIM(ChannelRepositoryInterface $channelRepository, ChannelInterface $ecommerceChannel, ChannelInterface $mobileChannel, AttributeRepositoryInterface $attributeRepository, AttributeInterface $nameAttribute, AttributeInterface $descriptionAttribute, AttributeRequirementFactory $factory, AttributeRequirementInterface $nameECommerceRequirement, AttributeRequirementInterface $nameMobileRequirement, AttributeRequirementInterface $descriptionECommerceRequirement, AttributeRequirementInterface $descriptionMobileRequirement) { $channelRepository->findAll()->willReturn([$ecommerceChannel, $mobileChannel]); $attributeRepository->getNonIdentifierAttributes()->willReturn([$nameAttribute, $descriptionAttribute]); $factory->createAttributeRequirement($nameAttribute, $ecommerceChannel, false)->willReturn($nameECommerceRequirement); $nameECommerceRequirement->getAttributeCode()->willReturn('name'); $nameECommerceRequirement->getChannelCode()->willReturn('ecommerce'); $factory->createAttributeRequirement($nameAttribute, $mobileChannel, false)->willReturn($nameMobileRequirement); $nameMobileRequirement->getAttributeCode()->willReturn('name'); $nameMobileRequirement->getChannelCode()->willReturn('mobile'); $factory->createAttributeRequirement($descriptionAttribute, $ecommerceChannel, false)->willReturn($descriptionECommerceRequirement); $descriptionECommerceRequirement->getAttributeCode()->willReturn('description'); $descriptionECommerceRequirement->getChannelCode()->willReturn('ecommerce'); $factory->createAttributeRequirement($descriptionAttribute, $mobileChannel, false)->willReturn($descriptionMobileRequirement); $descriptionMobileRequirement->getAttributeCode()->willReturn('description'); $descriptionMobileRequirement->getChannelCode()->willReturn('mobile'); $this->initialize(); $this->getAttributeRequirements()->toArray()->shouldReturn(['name_ecommerce' => $nameECommerceRequirement, 'name_mobile' => $nameMobileRequirement, 'description_ecommerce' => $descriptionECommerceRequirement, 'description_mobile' => $descriptionMobileRequirement]); }
function it_initializes_attribute_requirements_with_all_channels_and_attributes_in_the_PIM(ChannelRepositoryInterface $channelRepository, ChannelInterface $ecommerce, ChannelInterface $mobile, AttributeRepositoryInterface $attributeRepository, AttributeInterface $name, AttributeInterface $description, AttributeRequirementFactory $factory, AttributeRequirementInterface $r1, AttributeRequirementInterface $r2, AttributeRequirementInterface $r3, AttributeRequirementInterface $r4) { $channelRepository->findAll()->willReturn([$ecommerce, $mobile]); $attributeRepository->getNonIdentifierAttributes()->willReturn([$name, $description]); $factory->createAttributeRequirement($name, $ecommerce, false)->willReturn($r1); $r1->getAttributeCode()->willReturn('name'); $r1->getChannelCode()->willReturn('ecommerce'); $factory->createAttributeRequirement($name, $mobile, false)->willReturn($r2); $r2->getAttributeCode()->willReturn('name'); $r2->getChannelCode()->willReturn('mobile'); $factory->createAttributeRequirement($description, $ecommerce, false)->willReturn($r3); $r3->getAttributeCode()->willReturn('description'); $r3->getChannelCode()->willReturn('ecommerce'); $factory->createAttributeRequirement($description, $mobile, false)->willReturn($r4); $r4->getAttributeCode()->willReturn('description'); $r4->getChannelCode()->willReturn('mobile'); $this->initialize(); $this->getAttributeRequirements()->toArray()->shouldReturn(['name_ecommerce' => $r1, 'name_mobile' => $r2, 'description_ecommerce' => $r3, 'description_mobile' => $r4]); }
/** * @return JsonResponse */ public function indexAction() { $channels = $this->channelRepository->findAll(); $normalizedChannels = $this->normalizer->normalize($channels, 'json'); return new JsonResponse($normalizedChannels); }