diff options
Diffstat (limited to 'service/service.php')
-rw-r--r-- | service/service.php | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/service/service.php b/service/service.php new file mode 100644 index 000000000..9609dd61e --- /dev/null +++ b/service/service.php @@ -0,0 +1,62 @@ +<?php +/** + * ownCloud - News + * + * This file is licensed under the Affero General Public License version 3 or + * later. See the COPYING file. + * + * @author Alessandro Cosentino <cosenal@gmail.com> + * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @copyright Alessandro Cosentino 2012 + * @copyright Bernhard Posselt 2012, 2014 + */ + +namespace OCA\News\Service; + +use \OCP\AppFramework\Db\DoesNotExistException; +use \OCP\AppFramework\Db\MultipleObjectsReturnedException; + +use \OCA\News\Db\IMapper; + + +abstract class Service { + + protected $mapper; + + public function __construct(IMapper $mapper){ + $this->mapper = $mapper; + } + + + /** + * Delete an entity + * @param int $id the id of the entity + * @param string $userId the name of the user for security reasons + * @throws DoesNotExistException if the entity does not exist + * @throws MultipleObjectsReturnedException if more than one entity exists + */ + public function delete($id, $userId){ + $entity = $this->find($id, $userId); + $this->mapper->delete($entity); + } + + + /** + * Finds an entity by id + * @param int $id the id of the entity + * @param string $userId the name of the user for security reasons + * @throws DoesNotExistException if the entity does not exist + * @throws MultipleObjectsReturnedException if more than one entity exists + * @return Entity the entity + */ + public function find($id, $userId){ + try { + return $this->mapper->find($id, $userId); + } catch(DoesNotExistException $ex){ + throw new ServiceNotFoundException($ex->getMessage()); + } catch(MultipleObjectsReturnedException $ex){ + throw new ServiceNotFoundException($ex->getMessage()); + } + } + +} |