/**
  * @param string $id
  * @return void
  */
 public function delete($id)
 {
     $photoId = new PhotoId($id);
     $photo = $this->repository->findById($photoId);
     $thumbCollection = $this->thumbRepository->findCollectionBy($photoId);
     /** @var PhotoThumb $thumb */
     foreach ($thumbCollection as $thumb) {
         if ($this->storage->removeThumb($thumb)) {
             $this->thumbRepository->delete($thumb);
         }
     }
     if ($this->storage->remove($photo)) {
         $this->repository->delete($photo);
     }
 }
Example #2
0
 /**
  * @param Photo $photo
  * @param ThumbRequest $thumbRequest
  * @return PhotoThumb
  */
 private function createThumbFromOriginal(Photo $photo, ThumbRequest $thumbRequest)
 {
     $thumb = $this->thumbGenerator->generate($this->thumbRepository->ensureUniqueThumbId(), $photo, $thumbRequest->thumbSize(), $this->photoStorage->getPhotoThumbHttpUrlBy(new PhotoId($photo->id()), new ResourceId($photo->resourceId()), new PhotoName($photo->name()), $thumbRequest->thumbSize(), $this->thumbGenerator->conversionFormat()));
     $photoFile = $this->photoStorage->uploadThumb($thumb, $photo);
     $thumb->updatePhotoThumbFile($photoFile);
     $this->thumbRepository->save($thumb);
     return $thumb;
 }