Move DirectMapper to QBMapper

Mapper has been deprecated for some time now.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
Roeland Jago Douma 2021-03-02 21:08:37 +01:00
parent f109cf0136
commit ee7702e5f0
2 changed files with 10 additions and 13 deletions

View File

@ -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<Direct>
*/
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))
);

View File

@ -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')