/** * @param string $group * @param string $language * @param array[]|null $stats * * @return self */ public static function getNew($group, $language, array $stats = null) { $self = new self(); $self->group = $group; $self->language = $language; if (is_array($stats)) { $self->stats = $stats; } else { $self->stats = MessageGroupStats::forItem($group, $language); } return $self; }
public function run() { $title = $this->title; $handle = new MessageHandle($title); $code = $handle->getCode(); if (!$handle->isValid() && !$code) { return true; } $groups = self::getGroupsWithTransitions($handle); foreach ($groups as $id => $transitions) { $group = MessageGroups::getGroup($id); $stats = MessageGroupStats::forItem($id, $code); $state = self::getNewState($stats, $transitions); if ($state) { ApiGroupReview::changeState($group, $code, $state, FuzzyBot::getUser()); } } return true; }