diff options
author | Sean Molenaar <sean@seanmolenaar.eu> | 2020-08-29 23:39:35 +0200 |
---|---|---|
committer | Benjamin Brahmer <info@b-brahmer.de> | 2020-09-27 15:35:31 +0200 |
commit | d00d1ab2a28f428223e52b17052c072c64784016 (patch) | |
tree | c019f85fb7ac67147dd43ca64b4ac3cda99832f7 /lib/Service/Service.php | |
parent | 5687baca75d47dbdffd3de74e865ad2f71ef0cb7 (diff) |
Create V2 mapper, Service and management commands
Signed-off-by: Sean Molenaar <sean@seanmolenaar.eu>
Diffstat (limited to 'lib/Service/Service.php')
-rw-r--r-- | lib/Service/Service.php | 70 |
1 files changed, 55 insertions, 15 deletions
diff --git a/lib/Service/Service.php b/lib/Service/Service.php index ac9b6e1a3..33397bc0f 100644 --- a/lib/Service/Service.php +++ b/lib/Service/Service.php @@ -13,33 +13,72 @@ namespace OCA\News\Service; -use \OCP\AppFramework\Db\DoesNotExistException; -use \OCP\AppFramework\Db\MultipleObjectsReturnedException; - -use \OCA\News\Db\NewsMapper; +use OCA\News\Db\NewsMapper; +use OCA\News\Db\NewsMapperV2; +use OCA\News\Service\Exceptions\ServiceNotFoundException; +use OCP\AppFramework\Db\DoesNotExistException; +use OCP\AppFramework\Db\Entity; +use OCP\AppFramework\Db\MultipleObjectsReturnedException; +use Psr\Log\LoggerInterface; +/** + * Class Service + * + * @package OCA\News\Service + */ abstract class Service { - + /** + * @var NewsMapper|NewsMapperV2 + */ protected $mapper; + /** + * @var LoggerInterface + */ + protected $logger; - public function __construct(NewsMapper $mapper) + /** + * Service constructor. + * + * @param NewsMapper|NewsMapperV2 $mapper + * @param LoggerInterface $logger + */ + public function __construct($mapper, LoggerInterface $logger) { $this->mapper = $mapper; + $this->logger = $logger; } + /** + * Finds all items of a user + * + * @param string $userId the name of the user + * + * @return Entity[] + */ + abstract public function findAllForUser(string $userId): array; + + /** + * Finds all items + * + * @return Entity[] + */ + abstract public function findAll(): array; + /** * Delete an entity * - * @param int $id the id of the entity - * @param string $userId the name of the user for security reasons + * @param int $id the id of the entity + * @param string $userId the name of the user for security reasons + * * @throws ServiceNotFoundException if the entity does not exist, or there * are more than one of it */ - public function delete($id, $userId) + public function delete(string $userId, int $id) { - $entity = $this->find($id, $userId); + $entity = $this->find($userId, $id); + $this->mapper->delete($entity); } @@ -47,16 +86,17 @@ abstract class Service /** * Finds an entity by id * - * @param int $id the id of the entity - * @param string $userId the name of the user for security reasons + * @param int $id the id of the entity + * @param string $userId the name of the user for security reasons + * + * @return \OCP\AppFramework\Db\Entity the entity * @throws ServiceNotFoundException if the entity does not exist, or there * are more than one of it - * @return \OCP\AppFramework\Db\Entity the entity */ - public function find($id, $userId) + public function find(string $userId, int $id): Entity { try { - return $this->mapper->find($id, $userId); + return $this->mapper->find($userId, $id); } catch (DoesNotExistException $ex) { throw new ServiceNotFoundException($ex->getMessage()); } catch (MultipleObjectsReturnedException $ex) { |