summaryrefslogtreecommitdiffstats
path: root/db/newsmapper.php
diff options
context:
space:
mode:
Diffstat (limited to 'db/newsmapper.php')
-rw-r--r--db/newsmapper.php93
1 files changed, 0 insertions, 93 deletions
diff --git a/db/newsmapper.php b/db/newsmapper.php
deleted file mode 100644
index 0acc252b9..000000000
--- a/db/newsmapper.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?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\Db;
-
-use OCA\News\Utility\Time;
-use OCP\IDBConnection;
-use OCP\AppFramework\Db\Mapper;
-use OCP\AppFramework\Db\Entity;
-
-abstract class NewsMapper extends Mapper {
-
- /**
- * @var Time
- */
- private $time;
-
- public function __construct(IDBConnection $db, $table, $entity,
- Time $time) {
- parent::__construct($db, $table, $entity);
- $this->time = $time;
- }
-
- public function update(Entity $entity) {
- $entity->setLastModified($this->time->getMicroTime());
- return parent::update($entity);
- }
-
- public function insert(Entity $entity) {
- $entity->setLastModified($this->time->getMicroTime());
- return parent::insert($entity);
- }
-
- /**
- * @param int $id the id of the feed
- * @param string $userId the id of the user
- *
- * @return \OCP\AppFramework\Db\Entity
- */
- abstract public function find($id, $userId);
-
- /**
- * 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 $limit
- *
- * @paran int $offset
- * @return array
- */
- public function where(array $search = [], $limit = null, $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);
- }
-
-}