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

View File

@@ -631,7 +631,7 @@ class BoardService {
$acl = $this->aclMapper->find($id); $acl = $this->aclMapper->find($id);
$this->boardMapper->mapAcl($acl); $this->boardMapper->mapAcl($acl);
if ($acl->getType() === Acl::PERMISSION_TYPE_USER) { if ($acl->getType() === Acl::PERMISSION_TYPE_USER) {
$assignements = $this->assignedUsersMapper->findByUserId($acl->getParticipant()); $assignements = $this->assignedUsersMapper->findByParticipant($acl->getParticipant());
foreach ($assignements as $assignement) { foreach ($assignements as $assignement) {
$this->assignedUsersMapper->delete($assignement); $this->assignedUsersMapper->delete($assignement);
} }