mapper = $mapper; } public function findAll(string $userId): array { return $this->mapper->findAll($userId); } private function handleException(Exception $e): void { if ($e instanceof DoesNotExistException || $e instanceof MultipleObjectsReturnedException) { throw new StationNotFound($e->getMessage()); } else { throw $e; } } public function find($id, $userId) { try { return $this->mapper->find($id, $userId); // in order to be able to plug in different storage backends like files // for instance it is a good idea to turn storage related exceptions // into service related exceptions so controllers and service users // have to deal with only one type of exception } catch (Exception $e) { $this->handleException($e); } } public function create($stationuuid, $name, $favicon, $urlresolved, $userId) { $station = new Station(); $station->setStationuuid($stationuuid); $station->setName($name); $station->setFavicon($favicon); $station->setUrlresolved($urlresolved); $station->setUserId($userId); return $this->mapper->insert($station); } public function update($id, $stationuuid, $name, $favicon, $urlresolved, $userId) { try { $station = $this->mapper->find($id, $userId); $station->setStationuuid($stationuuid); $station->setName($name); $station->setFavicon($favicon); $station->setUrlresolved($urlresolved); return $this->mapper->update($station); } catch (Exception $e) { $this->handleException($e); } } public function delete($id, $userId) { try { $station = $this->mapper->find($id, $userId); $this->mapper->delete($station); return $station; } catch (Exception $e) { $this->handleException($e); } } }