Move AssignmentMapper to query builder

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl
2020-11-04 19:39:59 +01:00
parent 67fe250248
commit d66068cdcd
2 changed files with 12 additions and 12 deletions

View File

@@ -32,6 +32,7 @@ use OCP\AppFramework\Db\QBMapper;
use OCP\IDBConnection;
use OCP\IGroupManager;
use OCP\IUserManager;
use PDO;
class AssignmentMapper extends QBMapper implements IPermissionMapper {
@@ -57,27 +58,27 @@ class AssignmentMapper extends QBMapper implements IPermissionMapper {
* FIXME: rename this since it returns multiple entities otherwise the naming is confusing with Entity::find
*
* @param $cardId
* @return array|Entity
* @return Assignment[]
*/
public function find($cardId) {
public function find($cardId): array {
$qb = $this->db->getQueryBuilder();
$qb->select('*')
->from('deck_assigned_users')
->where($qb->expr()->eq('card_id', $qb->createNamedParameter($cardId)));
/** @var Assignment[] $users */
->where($qb->expr()->eq('card_id', $qb->createNamedParameter($cardId, PDO::PARAM_INT)));
$users = $this->findEntities($qb);
foreach ($users as &$user) {
foreach ($users as $user) {
$this->mapParticipant($user);
}
return $users;
}
public function findByUserId($uid) {
public function findByParticipant(string $participant, $type = Assignment::TYPE_USER): array {
$qb = $this->db->getQueryBuilder();
$qb->select('*')
->from('deck_assigned_users')
->where($qb->expr()->eq('participant', $qb->createNamedParameter($uid)));
/** @var Assignment[] $users */
->where($qb->expr()->eq('participant', $qb->createNamedParameter($participant, PDO::PARAM_STR)))
->andWhere($qb->expr()->eq('type', $qb->createNamedParameter($type, PDO::PARAM_INT)));
return $this->findEntities($qb);
}
@@ -94,7 +95,7 @@ class AssignmentMapper extends QBMapper implements IPermissionMapper {
* Check if user exists before assigning it to a card
*
* @param Entity $entity
* @return null|Entity
* @return null|Assignment
* @throws NotFoundException
*/
public function insert(Entity $entity): Entity {
@@ -118,7 +119,6 @@ class AssignmentMapper extends QBMapper implements IPermissionMapper {
public function isUserAssigned($cardId, $userId): bool {
$assignments = $this->find($cardId);
/** @var Assignment $assignment */
foreach ($assignments as $assignment) {
$origin = $this->getOrigin($assignment);
if ($origin instanceof User && $assignment->getParticipant() === $userId) {
@@ -144,7 +144,7 @@ class AssignmentMapper extends QBMapper implements IPermissionMapper {
$origin = $this->groupManager->get($assignment->getParticipant());
return $origin ? new Group($origin) : null;
}
if ($assignment->getType() === AssignedUsers::TYPE_CIRCLE) {
if ($assignment->getType() === Assignment::TYPE_CIRCLE) {
$origin = $this->circleService->getCircle($assignment->getParticipant());
return $origin ? new Circle($origin) : null;
}