FileService.php 898 B

123456789101112131415161718192021222324252627282930
  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. class FileService
  10. {
  11. private CustomFieldRepository $customFieldRepository;
  12. public function __construct(CustomFieldRepository $customFieldRepository)
  13. {
  14. $this->customFieldRepository = $customFieldRepository;
  15. }
  16. public function update(string $id, array $updatedData): void
  17. {
  18. $file = File::query()->findOrFail($id);
  19. $file->fill($updatedData);
  20. $changes = ModelChangeDetector::detector(ActionObjectType::CONTAINER_FILE, $file);
  21. ActionRepository::create($id, ActionObjectType::CONTAINER_FILE, ObjectAction::EDITED_FILE, null, null, [], $changes);
  22. $file->save();
  23. }
  24. }