#4 - wip
This commit is contained in:
		| @@ -4,21 +4,20 @@ declare(strict_types=1); | ||||
|  | ||||
| namespace Toby\Observers; | ||||
|  | ||||
| use Illuminate\Support\Arr; | ||||
| use Illuminate\Support\Facades\Storage; | ||||
| use LasseRafn\InitialAvatarGenerator\InitialAvatar; | ||||
| use Toby\Helpers\UserAvatarGenerator; | ||||
| use Toby\Models\User; | ||||
|  | ||||
| class UserObserver | ||||
| { | ||||
|     public function __construct( | ||||
|         protected InitialAvatar $generator, | ||||
|         protected UserAvatarGenerator $generator, | ||||
|     ) { | ||||
|     } | ||||
|  | ||||
|     public function created(User $user): void | ||||
|     { | ||||
|         $user->avatar = $this->generateAvatar($user); | ||||
|         $user->avatar = $this->generator->generateFor($user); | ||||
|  | ||||
|         $user->save(); | ||||
|     } | ||||
| @@ -26,7 +25,8 @@ class UserObserver | ||||
|     public function updating(User $user): void | ||||
|     { | ||||
|         if ($user->isDirty("name")) { | ||||
|             $user->avatar = $this->generateAvatar($user); | ||||
|             Storage::delete($user->avatar); | ||||
|             $user->avatar = $this->generator->generateFor($user); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -34,20 +34,4 @@ class UserObserver | ||||
|     { | ||||
|         Storage::delete($user->avatar); | ||||
|     } | ||||
|  | ||||
|     protected function generateAvatar(User $user): string | ||||
|     { | ||||
|         $path = "avatars/{$user->id}.svg"; | ||||
|  | ||||
|         Storage::put($path, $this->generator->rounded()->background($this->getRandomColor())->color("#F4F8FD")->smooth()->generateSvg($user->name)); | ||||
|  | ||||
|         return $path; | ||||
|     } | ||||
|  | ||||
|     protected function getRandomColor(): string | ||||
|     { | ||||
|         $colors = config("colors"); | ||||
|  | ||||
|         return Arr::random($colors); | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user