added Subscription Entity and Mapper
This commit is contained in:
parent
32aa0aa386
commit
05bbfe100d
2 changed files with 66 additions and 0 deletions
31
lib/Db/Subscription.php
Normal file
31
lib/Db/Subscription.php
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
namespace OCA\DavPush\Db;
|
||||
|
||||
use JsonSerializable;
|
||||
|
||||
use OCP\AppFramework\Db\Entity;
|
||||
|
||||
class Subscription extends Entity implements JsonSerializable {
|
||||
protected $userId;
|
||||
protected $collectionName;
|
||||
protected $data;
|
||||
protected $creationTimestamp;
|
||||
protected $expirationTimestamp;
|
||||
|
||||
public function __construct() {
|
||||
$this->addType('creationTimestamp','integer');
|
||||
$this->addType('expirationTimestamp','integer');
|
||||
}
|
||||
|
||||
public function jsonSerialize(): array {
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'userId' => $this->userId,
|
||||
'collectionName' => $this->collectionName,
|
||||
'data' => $this->data,
|
||||
'creationTimestamp' => $this->creationTimestamp,
|
||||
'expirationTimestamp' => $this->expirationTimestampv
|
||||
];
|
||||
}
|
||||
}
|
35
lib/Db/SubscriptionMapper.php
Normal file
35
lib/Db/SubscriptionMapper.php
Normal file
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
|
||||
namespace OCA\DavPush\Db;
|
||||
|
||||
use OCP\AppFramework\Db\DoesNotExistException;
|
||||
use OCP\AppFramework\Db\Entity;
|
||||
use OCP\AppFramework\Db\QBMapper;
|
||||
use OCP\DB\QueryBuilder\IQueryBuilder;
|
||||
use OCP\IDBConnection;
|
||||
|
||||
class SubscriptionMapper extends QBMapper {
|
||||
public const TABLENAME = 'dav_push_subscriptions';
|
||||
|
||||
public function __construct(IDBConnection $db) {
|
||||
parent::__construct($db, self::TABLENAME, Subscription::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $userId
|
||||
* @param string $id
|
||||
* @return Entity|Subscription
|
||||
* @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException
|
||||
* @throws DoesNotExistException
|
||||
*/
|
||||
public function find(string $userId, int $id): Subscription {
|
||||
/* @var $qb IQueryBuilder */
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
$qb->select('*')
|
||||
->from(self::TABLENAME)
|
||||
->where($qb->expr()->eq('id', $qb->createNamedParameter($id, IQueryBuilder::PARAM_INT)))
|
||||
->andWhere($qb->expr()->eq('user_id', $qb->createNamedParameter($userId)));
|
||||
|
||||
return $this->findEntity($qb);
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue