diff --git a/src/Sponsors/src/Model/Sponsor.php b/src/Sponsors/src/Model/Sponsor.php new file mode 100644 index 0000000..979615b --- /dev/null +++ b/src/Sponsors/src/Model/Sponsor.php @@ -0,0 +1,33 @@ +data = $sponsorData; + } + + public static function create(array $sponsorData): self + { + return new static($sponsorData); + } + + public function isConfirmed(): bool + { + if (!isset($this->data['confirmed'])) { + return false; + } + + return $this->data['confirmed']; + } + + public function getData(): array + { + return $this->data; + } +} diff --git a/src/Sponsors/src/TwigExtension/SponsorsExtension.php b/src/Sponsors/src/TwigExtension/SponsorsExtension.php index 67fdea3..0769a07 100644 --- a/src/Sponsors/src/TwigExtension/SponsorsExtension.php +++ b/src/Sponsors/src/TwigExtension/SponsorsExtension.php @@ -22,5 +22,12 @@ class SponsorsExtension extends AbstractExtension public function getSponsors(array $sponsorData, string $level): array { + return collect($sponsorData[$level]) + ->map(function ($sponsor) { + return Sponsor::create($sponsor); + }) + ->filter->isConfirmed() + ->map->getData() + ->toArray(); } }