/** * @param AutoResponseRuleCondition|null $value * @param Constraint $constraint */ public function validate($value, Constraint $constraint) { if (!$value) { return; } if ($this->filterValueShouldBeEmpty($value->getFilterType())) { if ($value->getFilterValue()) { $this->context->addViolation($constraint->nonEmptyInputMessage); } } elseif (!$value->getFilterValue()) { $this->context->addViolation($constraint->emptyInputMessage); } }
/** * @param string $filterType * @param string $filterValue * * @return AutoResponseRuleCondition */ protected function createCondition($filterType, $filterValue) { $condition = new AutoResponseRuleCondition(); return $condition->setFilterType($filterType)->setFilterValue($filterValue); }
protected function getAutoResponseRule() { $subjectCondition = new AutoResponseRuleCondition(); $subjectCondition->setField('subject')->setFilterType(FilterUtility::TYPE_EMPTY); $offerCondition = new AutoResponseRuleCondition(); $offerCondition->setField('emailBody.bodyContent')->setFilterType(TextFilterType::TYPE_CONTAINS)->setFilterValue('offer'); $saleCondition = new AutoResponseRuleCondition(); $saleCondition->setField('emailBody.bodyContent')->setFilterType(TextFilterType::TYPE_CONTAINS)->setFilterValue('sale'); $wonCondition = new AutoResponseRuleCondition(); $wonCondition->setField('emailBody.bodyContent')->setFilterType(TextFilterType::TYPE_CONTAINS)->setFilterValue('won'); $autoResponseRule = new AutoResponseRule(); $autoResponseRule->addConditions([$subjectCondition, $offerCondition, $saleCondition, $wonCondition]); $createdAt = new \DateTime('now', new \DateTimeZone('UTC')); $createdAt->sub(\DateInterval::createFromDateString('1 day')); $autoResponseRule->setCreatedAt($createdAt); return $autoResponseRule; }