summaryrefslogtreecommitdiffstats
path: root/lib/Db/NewsMapper.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Db/NewsMapper.php')
-rw-r--r--lib/Db/NewsMapper.php158
1 files changed, 0 insertions, 158 deletions
diff --git a/lib/Db/NewsMapper.php b/lib/Db/NewsMapper.php
deleted file mode 100644
index b03c42c91..000000000
--- a/lib/Db/NewsMapper.php
+++ /dev/null
@@ -1,158 +0,0 @@
-<?php
-/**
- * Nextcloud - 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 2012 Alessandro Cosentino
- * @copyright 2012-2014 Bernhard Posselt
- */
-
-namespace OCA\News\Db;
-
-use OCA\News\Utility\Time;
-use OCP\AppFramework\Db\DoesNotExistException;
-use OCP\AppFramework\Db\MultipleObjectsReturnedException;
-use OCP\AppFramework\Db\QBMapper;
-use OCP\IDBConnection;
-use OCP\AppFramework\Db\Mapper;
-use OCP\AppFramework\Db\Entity;
-
-/**
- * Class NewsMapper
- *
- * @package OCA\News\Db
- */
-abstract class NewsMapper extends Mapper
-{
- const TABLE_NAME = '';
-
- /**
- * @var Time
- */
- private $time;
-
- /**
- * NewsMapper constructor.
- *
- * @param IDBConnection $db Database connection
- * @param Time $time Time class
- * @param string $entity Entity class
- */
- public function __construct(
- IDBConnection $db,
- Time $time,
- string $entity
- ) {
- parent::__construct($db, static::TABLE_NAME, $entity);
- $this->time = $time;
- }
-
- public function update(Entity $entity): Entity
- {
- $entity->setLastModified($this->time->getMicroTime());
- return parent::update($entity);
- }
-
- public function insert(Entity $entity): Entity
- {
- $entity->setLastModified($this->time->getMicroTime());
- return parent::insert($entity);
- }
-
- /**
- * Remove deleted items.
- *
- * @return void
- */
- public function purgeDeleted(): void
- {
- $builder = $this->db->getQueryBuilder();
- $builder->delete($this->tableName)
- ->where('deleted_at != 0')
- ->execute();
- }
-
- abstract public function find(string $userId, int $id);
-
- /**
- * Find all items.
- *
- * @return Entity[]
- */
- abstract public function findAll(): array;
-
- /**
- * Find all items for a user.
- *
- * @param string $userId ID of the user
- *
- * @return Entity[]
- */
- abstract public function findAllFromUser(string $userId): array;
-
- /**
- * Find item for a user.
- *
- * @param string $userId ID of the user
- * @param int $id ID of the item
- *
- * @return Feed
- *
- * @throws DoesNotExistException The item is not found
- * @throws MultipleObjectsReturnedException Multiple items found
- */
- abstract public function findFromUser(string $userId, int $id): Entity;
-
-
-
- /**
- * Performs a SELECT query with all arguments appened to the WHERE clause
- * The SELECT will be performed on the current table and take the entity
- * that is related for transforming the properties into column names
- *
- * Important: This method does not filter marked as deleted rows!
- *
- * @param array $search an assoc array from property to filter value
- * @param int|null $limit Output limit
- * @param int|null $offset Output offset
- *
- * @depreacted Legacy function
- *
- * @return array
- */
- public function where(array $search = [], ?int $limit = null, ?int $offset = null)
- {
- $entity = new $this->entityClass();
-
- // turn keys into sql query filter, e.g. feedId -> feed_id = :feedId
- $filter = array_map(
- function ($property) use ($entity) {
- // check if the property actually exists on the entity to prevent
- // accidental Sql injection
- if (!property_exists($entity, $property)) {
- $msg = 'Property ' . $property . ' does not exist on '
- . $this->entityClass;
- throw new \BadFunctionCallException($msg);
- }
-
- $column = $entity->propertyToColumn($property);
- return $column . ' = :' . $property;
- },
- array_keys($search)
- );
-
- $andStatement = implode(' AND ', $filter);
-
- $sql = 'SELECT * FROM `' . $this->getTableName() . '`';
-
- if (count($search) > 0) {
- $sql .= 'WHERE ' . $andStatement;
- }
-
- return $this->findEntities($sql, $search, $limit, $offset);
- }
-}