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

<?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,
)
);
}
}