/** * Delete all image variations attached to an image * * If any of the delete operations fail Imbo will trigger an error * * @param EventInterface $event The current event */ public function deleteVariations(EventInterface $event) { $request = $event->getRequest(); $publicKey = $request->getPublicKey(); $imageIdentifier = $request->getImageIdentifier(); try { $this->database->deleteImageVariations($publicKey, $imageIdentifier); } catch (DatabaseException $e) { trigger_error(sprintf('Could not delete image variation metadata for %s (%s)', $publicKey, $imageIdentifier), E_USER_WARNING); } try { $this->storage->deleteImageVariations($publicKey, $imageIdentifier); } catch (StorageException $e) { trigger_error(sprintf('Could not delete image variations from storage for %s (%s)', $publicKey, $imageIdentifier), E_USER_WARNING); } }
public function testCanDeleteOneOrMoreImageVariations() { $key = 'key'; $id = 'imageId'; $blob = file_get_contents(FIXTURES_DIR . '/colors.png'); $this->assertTrue($this->adapter->storeImageVariation($key, $id, $blob, 100)); $this->assertTrue($this->adapter->storeImageVariation($key, $id, 'blob2', 200)); $this->assertTrue($this->adapter->storeImageVariation($key, $id, 'blob3', 300)); $this->assertSame($blob, $this->adapter->getImageVariation($key, $id, 100)); $this->assertSame('blob2', $this->adapter->getImageVariation($key, $id, 200)); $this->assertSame('blob3', $this->adapter->getImageVariation($key, $id, 300)); $this->assertTrue($this->adapter->deleteImageVariations($key, $id, 100)); $this->assertNull($this->adapter->getImageVariation($key, $id, 100)); $this->assertSame('blob2', $this->adapter->getImageVariation($key, $id, 200)); $this->assertSame('blob3', $this->adapter->getImageVariation($key, $id, 300)); $this->assertTrue($this->adapter->deleteImageVariations($key, $id)); $this->assertNull($this->adapter->getImageVariation($key, $id, 200)); $this->assertNull($this->adapter->getImageVariation($key, $id, 300)); }