예제 #1
0
 /**
  * Locate a file by disk and path.
  *
  * @param $folder
  * @param $path
  * @return FileInterface|null
  */
 public function locate($folder, $name)
 {
     $folder = $this->folders->findBySlug($folder);
     if (!($file = $this->files->findByNameAndFolder($name, $folder))) {
         return null;
     }
     return $file;
 }
예제 #2
0
 /**
  * Sync a file.
  *
  * @param File          $resource
  * @param DiskInterface $disk
  * @return null|FileInterface
  */
 public function sync(File $resource, DiskInterface $disk)
 {
     $folder = $this->syncFolder($resource, $disk);
     if (!($file = $this->files->findByNameAndFolder(basename($resource->getPath()), $folder))) {
         $file = $this->files->create(['name' => basename($resource->getPath()), 'folder_id' => $folder ? $folder->getId() : null, 'disk_id' => $disk->getId(), 'size' => $resource->getSize(), 'mime_type' => $resource->getMimetype(), 'extension' => pathinfo($resource->getPath(), PATHINFO_EXTENSION), 'entry_type' => $folder->getEntryModelName()]);
     } else {
         $this->files->save($file);
     }
     return $file;
 }
예제 #3
0
 /**
  * Handle the command.
  *
  * @param FileRepositoryInterface   $files
  * @param FolderRepositoryInterface $folders
  */
 public function handle(FileRepositoryInterface $files, FolderRepositoryInterface $folders)
 {
     $folder = $folders->findBySlug(dirname($this->file->getPath()));
     $file = $files->findByNameAndFolder(basename($this->file->getPath()), $folder);
     if ($file) {
         $files->delete($file);
     }
 }
예제 #4
0
 /**
  * Handle the command.
  *
  * @param FileRepositoryInterface   $files
  * @param FolderRepositoryInterface $folders
  * @param Decorator                 $decorator
  * @return \Anomaly\FilesModule\File\Contract\FileInterface|\Anomaly\Streams\Platform\Model\EloquentModel|null
  */
 public function handle(FileRepositoryInterface $files, FolderRepositoryInterface $folders)
 {
     if (is_numeric($this->identifier)) {
         return $files->find($this->identifier);
     }
     if (!is_numeric($this->identifier)) {
         list($folder, $name) = explode('/', $this->identifier);
         if (!($folder = $folders->findBySlug($folder))) {
             return null;
         }
         return $files->findByNameAndFolder($name, $folder);
     }
     return null;
 }