toby/app/Infrastructure/Jobs/SendVacationRequestDaysToGoogleCalendar.php
Adrian Hopek 026dd87a44
#6 - Google calendar (#52)
* change layout

* change layout

* #22 - wip

* wip

* wip

* #22 - wip

* #22 - wip

* #22 - wip

* #22 - wip

* #22 - fix

* #22 - wip

* #22 - added some tests

* #22 - wip

* #22 - wip

* #22 - fix

* #22 - wip

* #22 - wip

* #22 - wip

* #22 - fix

* #22 - fix

* #22 - fix

* #22 - fix

* #22 - fix

* #22 - fix

* #6 - wip

* #6 - update readme

* #6 - fix

Co-authored-by: EwelinaLasowy <ewelina.lasowy@blumilk.pl>
2022-02-16 09:01:11 +01:00

44 lines
1.1 KiB
PHP

<?php
declare(strict_types=1);
namespace Toby\Infrastructure\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Spatie\GoogleCalendar\Event;
use Toby\Eloquent\Models\Vacation;
use Toby\Eloquent\Models\VacationRequest;
class SendVacationRequestDaysToGoogleCalendar implements ShouldQueue
{
use Dispatchable;
use Queueable;
public function __construct(
protected VacationRequest $vacationRequest,
) {
}
public function handle(): void
{
$vacations = $this->vacationRequest->vacations()
->whereNull("event_id")
->get();
/** @var Vacation $vacation */
foreach ($vacations as $vacation) {
$event = Event::create([
"name" => "{$this->vacationRequest->type->label()} - {$this->vacationRequest->user->fullName}",
"startDate" => $vacation->date,
"endDate" => $vacation->date,
]);
$vacation->update([
"event_id" => $event->id,
]);
}
}
}