/** * @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); } }
/** * @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; }