toby/app/Observers/UserObserver.php
Adrian Hopek 55eb288e23 #4 - wip
2022-01-18 08:18:22 +01:00

38 lines
748 B
PHP

<?php
declare(strict_types=1);
namespace Toby\Observers;
use Illuminate\Support\Facades\Storage;
use Toby\Helpers\UserAvatarGenerator;
use Toby\Models\User;
class UserObserver
{
public function __construct(
protected UserAvatarGenerator $generator,
) {
}
public function created(User $user): void
{
$user->avatar = $this->generator->generateFor($user);
$user->save();
}
public function updating(User $user): void
{
if ($user->isDirty("name")) {
Storage::delete($user->avatar);
$user->avatar = $this->generator->generateFor($user);
}
}
public function forceDeleted(User $user): void
{
Storage::delete($user->avatar);
}
}