findEntities(IQueryBuilder $query) * @template-extends QBMapper */ class ConsentMapper extends QBMapper { public function __construct( IDBConnection $db, ) { parent::__construct($db, 'talk_consent', Consent::class); } /** * @return list */ public function findForToken(string $token): array { $query = $this->db->getQueryBuilder(); $query->select('*') ->from($this->getTableName()) ->where($query->expr()->eq('token', $query->createNamedParameter($token))); return $this->findEntities($query); } public function deleteByToken(string $token): int { $query = $this->db->getQueryBuilder(); $query->delete($this->getTableName()) ->where($query->expr()->eq('token', $query->createNamedParameter($token))); return $query->executeStatement(); } /** * @return list */ public function findForActor(string $actorType, string $actorId): array { $query = $this->db->getQueryBuilder(); $query->select('*') ->from($this->getTableName()) ->where($query->expr()->eq('actor_type', $query->createNamedParameter($actorType))) ->andWhere($query->expr()->eq('actor_id', $query->createNamedParameter($actorId))); return $this->findEntities($query); } public function deleteByActor(string $actorType, string $actorId): int { $query = $this->db->getQueryBuilder(); $query->delete($this->getTableName()) ->where($query->expr()->eq('actor_type', $query->createNamedParameter($actorType))) ->andWhere($query->expr()->eq('actor_id', $query->createNamedParameter($actorId))); return $query->executeStatement(); } /** * @return list */ public function findForTokenByActor(string $token, string $actorType, string $actorId): array { $query = $this->db->getQueryBuilder(); $query->select('*') ->from($this->getTableName()) ->where($query->expr()->eq('token', $query->createNamedParameter($token))) ->andWhere($query->expr()->eq('actor_type', $query->createNamedParameter($actorType))) ->andWhere($query->expr()->eq('actor_id', $query->createNamedParameter($actorId))); return $this->findEntities($query); } }