31 lines
631 B
PHP
31 lines
631 B
PHP
<?php
|
|
|
|
namespace App\RequiredTeamerCheck;
|
|
|
|
use App\Entity\User;
|
|
|
|
class RequiredTeamerCheckRegistry
|
|
{
|
|
/**
|
|
* @param iterable<RequiredTeamerCheckInterface> $checks
|
|
*/
|
|
public function __construct(private readonly iterable $checks)
|
|
{
|
|
}
|
|
|
|
public function getFirstUnresolvedCheck(User $user): ?RequiredTeamerCheckInterface
|
|
{
|
|
foreach ($this->checks as $check) {
|
|
if (false === $check->appliesTo($user)) {
|
|
continue;
|
|
}
|
|
|
|
if (false === $check->isSatisfied($user)) {
|
|
return $check;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|