You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
899 B
30 lines
899 B
<?php
|
|
|
|
namespace App\Domains\Identity\Actions\IdentityMaintenance;
|
|
|
|
use App\Domains\Identity\Models\User;
|
|
use App\Domains\System\Actions\Files\ReplaceSingleFile;
|
|
use App\Domains\System\DTOs\FileDTO;
|
|
use Illuminate\Http\UploadedFile;
|
|
use Livewire\Features\SupportFileUploads\TemporaryUploadedFile;
|
|
|
|
class UpdateUserAvatar
|
|
{
|
|
public function __construct(protected ReplaceSingleFile $replaceSingleFile) {}
|
|
|
|
public function execute(User $user, UploadedFile|TemporaryUploadedFile $file): void
|
|
{
|
|
$this->replaceSingleFile->execute(
|
|
newFile: $file,
|
|
dto: new FileDTO(
|
|
modelType: $user->getMorphClass(),
|
|
modelId: $user->id,
|
|
relationName: 'avatar',
|
|
disk: 'local',
|
|
directory: 'avatars',
|
|
options: [],
|
|
uploaderId: $user->id,
|
|
)
|
|
);
|
|
}
|
|
}
|
|
|