diff --git a/apps/dav/lib/Db/DirectMapper.php b/apps/dav/lib/Db/DirectMapper.php index f088011d1d..8192793bb0 100644 --- a/apps/dav/lib/Db/DirectMapper.php +++ b/apps/dav/lib/Db/DirectMapper.php @@ -27,10 +27,13 @@ declare(strict_types=1); namespace OCA\DAV\Db; use OCP\AppFramework\Db\DoesNotExistException; -use OCP\AppFramework\Db\Mapper; +use OCP\AppFramework\Db\QBMapper; use OCP\IDBConnection; -class DirectMapper extends Mapper { +/** + * @template-extends QBMapper + */ +class DirectMapper extends QBMapper { public function __construct(IDBConnection $db) { parent::__construct($db, 'directlink', Direct::class); } @@ -44,26 +47,18 @@ class DirectMapper extends Mapper { $qb = $this->db->getQueryBuilder(); $qb->select('*') - ->from('directlink') + ->from($this->getTableName()) ->where( $qb->expr()->eq('token', $qb->createNamedParameter($token)) ); - $cursor = $qb->execute(); - $data = $cursor->fetch(); - $cursor->closeCursor(); - - if ($data === false) { - throw new DoesNotExistException('Direct link with token does not exist'); - } - - return Direct::fromRow($data); + return parent::findEntity($qb); } public function deleteExpired(int $expiration) { $qb = $this->db->getQueryBuilder(); - $qb->delete('directlink') + $qb->delete($this->getTableName()) ->where( $qb->expr()->lt('expiration', $qb->createNamedParameter($expiration)) ); diff --git a/apps/dav/tests/unit/Controller/DirectControllerTest.php b/apps/dav/tests/unit/Controller/DirectControllerTest.php index 0cfe7c5cde..2c8a708ba0 100644 --- a/apps/dav/tests/unit/Controller/DirectControllerTest.php +++ b/apps/dav/tests/unit/Controller/DirectControllerTest.php @@ -142,6 +142,8 @@ class DirectControllerTest extends TestCase { $this->assertSame(101, $direct->getFileId()); $this->assertSame('superduperlongtoken', $direct->getToken()); $this->assertSame(42 + 60 * 60 * 8, $direct->getExpiration()); + + return $direct; }); $this->urlGenerator->method('getAbsoluteURL')