summaryrefslogtreecommitdiffstats
path: root/lib/Service/Service.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Service/Service.php')
-rw-r--r--lib/Service/Service.php70
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) {