From a894cf3f6817206c8f95c05ac65bee789e6edb0a Mon Sep 17 00:00:00 2001
From: Moreau Elise <moreau.elise13@gmail.com>
Date: Sat, 31 Oct 2020 11:19:30 +0100
Subject: [PATCH] add controler to find contaminated users in a group

---
 .../Actions/User/ContaminatedUsersInGroup.php | 33 +++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 src/Application/Actions/User/ContaminatedUsersInGroup.php

diff --git a/src/Application/Actions/User/ContaminatedUsersInGroup.php b/src/Application/Actions/User/ContaminatedUsersInGroup.php
new file mode 100644
index 0000000..f8c98cf
--- /dev/null
+++ b/src/Application/Actions/User/ContaminatedUsersInGroup.php
@@ -0,0 +1,33 @@
+<?php
+declare(strict_types=1);
+
+namespace App\Application\Actions\User;
+use Psr\Http\Message\ResponseInterface as Response;
+use Psr\Http\Message\ServerRequestInterface as Request;
+use Psr\Http\Server\MiddlewareInterface as Middleware;
+use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
+use Slim\Exception\HttpBadRequestException;
+
+/**
+ * Class ListUsersAction
+ *
+ * @author : moreau96u
+ */
+class ContaminatedUsersInGroup extends UserAction
+{
+
+    protected function action(): Response
+    {
+        $groupId = (int) $this->resolveArg('id');
+        $qb = $this->em->createQueryBuilder()
+        ->select('u')
+        ->from('App\Domain\User\User', 'u')
+        ->where('u.contaminated = 1')
+        ->andWhere(':targetGroup MEMBER OF u.groups')
+        ->setParameter('targetGroup', $groupId)
+        ->getQuery()
+        ->getResult();
+
+        return $this->respondWithData($qb);
+    }
+}
-- 
GitLab