toby/app/Infrastructure/Jobs/ClearVacationRequestDaysInGoogleCalendar.php
Adrian Hopek 68e32ad930
#166 - Slack and Google Calendar feature flags (#167)
* slack and google calendar feature flags

* cs fix

* update .env.example
2022-06-13 13:50:23 +02:00

41 lines
966 B
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\VacationRequest;
class ClearVacationRequestDaysInGoogleCalendar implements ShouldQueue
{
use Dispatchable;
use Queueable;
public function __construct(
protected VacationRequest $vacationRequest,
) {}
public function handle(): void
{
if (!config("services.google.calendar_enabled")) {
return;
}
foreach ($this->vacationRequest->event_ids ?? [] as $eventId) {
$calendarEvent = Event::find($eventId);
if ($calendarEvent->googleEvent->getStatus() !== "cancelled") {
$calendarEvent->delete();
}
}
$this->vacationRequest->update([
"event_ids" => null,
]);
}
}