. * */ namespace OCA\News\BusinessLayer; use \OCA\AppFramework\Db\DoesNotExistException; use \OCA\AppFramework\Db\MultipleObjectsReturnedException; use \OCA\News\Db\IMapper; abstract class BusinessLayer { 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 BusinessLayerException($ex->getMessage()); } catch(MultipleObjectsReturnedException $ex){ throw new BusinessLayerException($ex->getMessage()); } } }