getContainer()->get('preferences'); } protected function getEntityManager() { return $this->getContainer()->get('entityManager'); } protected function handleUserAccess($userId) { if (!$this->getUser()->isAdmin()) { if ($this->getUser()->id != $userId) { throw new Forbidden(); } } } public function actionPatch($params, $data) { return $this->actionUpdate($params, $data); } public function actionUpdate($params, $data) { $userId = $params['id']; $this->handleUserAccess($userId); $entity = $this->getEntityManager()->getEntity('Preferences', $userId); if ($entity) { $entity->set($data); $this->getEntityManager()->saveEntity($entity); return $entity->toArray(); } throw new Error(); } public function actionRead($params) { $userId = $params['id']; $this->handleUserAccess($userId); $entity = $this->getEntityManager()->getEntity('Preferences', $userId); $entity->set('name', $this->getUser()->get('name')); if ($entity) { return $entity->toArray(); } throw new NotFound(); } }