mautic / app /bundles /ReportBundle /Scheduler /Builder /SchedulerWeeklyBuilder.php
chrisbryan17's picture
Upload folder using huggingface_hub
d2897cd verified
<?php
namespace Mautic\ReportBundle\Scheduler\Builder;
use Mautic\ReportBundle\Scheduler\BuilderInterface;
use Mautic\ReportBundle\Scheduler\Enum\SchedulerEnum;
use Mautic\ReportBundle\Scheduler\Exception\InvalidSchedulerException;
use Mautic\ReportBundle\Scheduler\SchedulerInterface;
use Recurr\Exception\InvalidArgument;
use Recurr\Exception\InvalidRRule;
use Recurr\Rule;
class SchedulerWeeklyBuilder implements BuilderInterface
{
/**
* @throws InvalidSchedulerException
*/
public function build(Rule $rule, SchedulerInterface $scheduler): Rule
{
try {
$rule->setFreq('WEEKLY');
if ($scheduler->isScheduledWeekDays()) {
$days = SchedulerEnum::getWeekDays();
} else {
$days = [$scheduler->getScheduleDay()];
}
$rule->setByDay($days);
} catch (InvalidArgument|InvalidRRule) {
throw new InvalidSchedulerException();
}
return $rule;
}
}