%PDF- %PDF-
| Direktori : /www/varak.net/nextcloud.varak.net/apps_old/apps/passwords/lib/Db/ |
| Current File : /www/varak.net/nextcloud.varak.net/apps_old/apps/passwords/lib/Db/ShareMapper.php |
<?php
/**
* This file is part of the Passwords App
* created by Marius David Wieschollek
* and licensed under the AGPL.
*/
namespace OCA\Passwords\Db;
use Exception;
use OCP\DB\QueryBuilder\IQueryBuilder;
/**
* Class ShareMapper
*
* @package OCA\Passwords\Db
*/
class ShareMapper extends AbstractMapper {
const TABLE_NAME = 'passwords_share';
/**
* @param string $userId
*
* @return Share[]
* @throws Exception
*/
public function findAllByUserIdOrReceiverId(string $userId): array {
$sql = $this->getStatement();
$sql->orWhere(
$sql->expr()->eq('user_id', $sql->createNamedParameter($userId)),
$sql->expr()->eq('receiver', $sql->createNamedParameter($userId))
);
return $this->findEntities($sql);
}
/**
* @return IQueryBuilder
*/
protected function getStatement(): IQueryBuilder {
$qb = $this->db->getQueryBuilder();
$qb->select('*')
->from(static::TABLE_NAME)
->where(
$qb->expr()->eq('deleted', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL))
);
if($this->userId !== null) {
$qb->andWhere(
$qb->expr()->orX(
$qb->expr()->eq('user_id', $qb->createNamedParameter($this->userId)),
$qb->expr()->andX(
$qb->expr()->eq('receiver', $qb->createNamedParameter($this->userId)),
$qb->expr()->isNotNull('target_password')
)
)
);
}
return $qb;
}
}