FileService.php 990 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. namespace App\Services\File;
  3. use App\Models\Enums\ActionObjectType;
  4. use App\Models\Enums\ObjectAction;
  5. use App\Models\File;
  6. use App\Repositories\ActionRepository;
  7. use App\Repositories\CustomFieldRepository;
  8. use App\Services\History\ModelChangeDetector;
  9. use Illuminate\Support\Facades\Auth;
  10. class FileService
  11. {
  12. private CustomFieldRepository $customFieldRepository;
  13. public function __construct(CustomFieldRepository $customFieldRepository)
  14. {
  15. $this->customFieldRepository = $customFieldRepository;
  16. }
  17. public function update(string $id, array $updatedData): void
  18. {
  19. $file = File::query()->findOrFail($id);
  20. $updatedData['updated_by'] = Auth::user()->id;
  21. $file->fill($updatedData);
  22. $changes = ModelChangeDetector::detector(ActionObjectType::CONTAINER_FILE, $file);
  23. ActionRepository::create($id, ActionObjectType::CONTAINER_FILE, ObjectAction::EDITED_FILE, null, null, [], $changes);
  24. $file->save();
  25. }
  26. }