#28 - holidays management

This commit is contained in:
Adrian Hopek
2022-01-24 14:03:39 +01:00
parent 6854c7a9f8
commit 29d81030ac
20 changed files with 792 additions and 9 deletions

View File

@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace Toby\Observers;
use Toby\Helpers\PolishHolidaysRetriever;
use Toby\Helpers\UserAvatarGenerator;
use Toby\Models\User;
use Toby\Models\YearPeriod;
@@ -12,10 +13,17 @@ class YearPeriodObserver
{
public function __construct(
protected UserAvatarGenerator $generator,
protected PolishHolidaysRetriever $polishHolidaysRetriever,
) {
}
public function created(YearPeriod $yearPeriod): void
{
$this->createVacationLimitsFor($yearPeriod);
$this->createHolidaysFor($yearPeriod);
}
protected function createVacationLimitsFor(YearPeriod $yearPeriod): void
{
$users = User::all();
@@ -25,4 +33,16 @@ class YearPeriodObserver
]);
}
}
protected function createHolidaysFor(YearPeriod $yearPeriod): void
{
$holidays = $this->polishHolidaysRetriever->getForYearPeriod($yearPeriod);
foreach ($holidays as $holiday) {
$yearPeriod->holidays()->create([
"name" => $holiday["name"],
"date" => $holiday["date"],
]);
}
}
}