/** * @param StaticSegment $staticSegment * @return null|StaticSegment */ protected function addStaticListSegment(StaticSegment $staticSegment) { if (!$staticSegment->getOriginId()) { $response = $this->transport->addStaticListSegment(['id' => $staticSegment->getSubscribersList()->getOriginId(), 'name' => $staticSegment->getName()]); if (!empty($response['id'])) { $staticSegment->setOriginId($response['id']); $this->logger->debug(sprintf('StaticSegment with id "%s" added', $staticSegment->getOriginId())); return $staticSegment; } } return null; }
/** * @param StaticSegment $value * @param UniqueStaticSegmentNameConstraint|Constraint $constraint */ public function validate($value, Constraint $constraint) { if ($value instanceof StaticSegment && !$value->getOriginId()) { $this->transport->init($value->getChannel()->getTransport()); $segments = $this->transport->getListStaticSegments($value->getSubscribersList()); foreach ($segments as $segment) { if ($segment['name'] == $value->getName()) { $this->context->addViolationAt('name', $constraint->message); break; } } } }