public function save(array $values, Package $package = null)
{
if ($package === null) {
$package = new Package();
$this->orm->persist($package);
}
if (array_key_exists('headline', $values)) {
$package->setHeadline($values['headline']);
}
if (array_key_exists('rendition', $values)) {
$package->setRendition($values['rendition']);
}
if (array_key_exists('slug', $values)) {
$package->setSlug($values['slug']);
}
try {
$this->orm->flush($package);
return $package;
} catch (\PDOException $e) {
if (strpos($e->getMessage(), 'slug is not unique') !== false) {
throw new \InvalidArgumentException("Slug is not unique", self::CODE_UNIQUE_SLUG);
}
throw $e;
}
}