protected function saveEntity($id, Request $request)
{
$systemCollectionManager = $this->get('sulu_media.system_collections.manager');
$parent = $request->get('parent');
if ($id !== null && $systemCollectionManager->isSystemCollection(intval($id)) || $parent !== null && $systemCollectionManager->isSystemCollection(intval($parent))) {
throw new AccessDeniedException('Permission "update" or "create" is not granted for system collections');
}
try {
$collectionManager = $this->getCollectionManager();
$data = $this->getData($request);
$data['id'] = $id;
$data['locale'] = $this->getRequestParameter($request, 'locale', true);
$collection = $collectionManager->save($data, $this->getUser()->getId());
$view = $this->view($collection, 200);
} catch (CollectionNotFoundException $e) {
$view = $this->view($e->toArray(), 404);
} catch (MediaException $e) {
$view = $this->view($e->toArray(), 400);
}
return $this->handleView($view);
}