|
|
@@ -15,19 +15,22 @@ class PrivateDiscussionsController extends AbstractController
|
|
|
#[Route('/private/discussions', name: 'private_discussions')]
|
|
|
public function index(Request $request): Response
|
|
|
{
|
|
|
+ $error = "";
|
|
|
$session = $this->get('session');
|
|
|
|
|
|
if (null === $session->get('user')) {
|
|
|
return $this->redirectToRoute('login');
|
|
|
}
|
|
|
$formBuilder = $this->createFormBuilder();
|
|
|
- $formBuilder->add('text', \Symfony\Component\Form\Extension\Core\Type\TextType::class)
|
|
|
- ->add('username', \Symfony\Component\Form\Extension\Core\Type\TextType::class)
|
|
|
+ $formBuilder->add('text', \Symfony\Component\Form\Extension\Core\Type\TextType::class, ['label' => 'Envoyer un message'])
|
|
|
+ ->add('username', \Symfony\Component\Form\Extension\Core\Type\TextType::class, ['label' => 'Utilisateur'])
|
|
|
->setAction($this->generateUrl('private_discussions'));
|
|
|
$form = $formBuilder->getForm();
|
|
|
|
|
|
$em = $this->getDoctrine()->getManager();
|
|
|
$repo_user = $em->getRepository(User::class);
|
|
|
+ $user = $repo_user->findOneBy(array('username' => $session->get("user")));
|
|
|
+
|
|
|
$user = $repo_user->findOneBy(array('username' => $session->get("user")));
|
|
|
$private_discussions = array();
|
|
|
foreach ($user->getPrivateDiscussions() as $pd) {
|
|
|
@@ -45,17 +48,29 @@ class PrivateDiscussionsController extends AbstractController
|
|
|
if ($form->isValid()) {
|
|
|
$recept = $repo_user->findOneBy(array('username' => $form->get('username')->getData()));
|
|
|
if (!$recept) {
|
|
|
- return new Response("Profil non existant");
|
|
|
+ return $this->render('private_discussions/index.html.twig', [
|
|
|
+ 'controller_name' => 'PrivateDiscussionsController',
|
|
|
+ 'form' => $form->createView(),
|
|
|
+ 'private_discussions' => $private_discussions,
|
|
|
+ 'username' => $session->get('user'),
|
|
|
+ 'error' => "Profil non existant.",
|
|
|
+ ]);
|
|
|
}
|
|
|
$disc_found = false;
|
|
|
foreach ($user->getPrivateDiscussions() as $disc) {
|
|
|
- if(in_array($recept, $disc->getParticipants()->getValues())) {
|
|
|
+ if (in_array($recept, $disc->getParticipants()->getValues())) {
|
|
|
$disc_found = true;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
if ($disc_found) {
|
|
|
- return new Response("Discussion existante");
|
|
|
+ return $this->render('private_discussions/index.html.twig', [
|
|
|
+ 'controller_name' => 'PrivateDiscussionsController',
|
|
|
+ 'form' => $form->createView(),
|
|
|
+ 'private_discussions' => $private_discussions,
|
|
|
+ 'username' => $session->get('user'),
|
|
|
+ 'error' => "Discussion existante.",
|
|
|
+ ]);
|
|
|
}
|
|
|
$discussion = new PrivateDiscussion();
|
|
|
$discussion->addParticipant($user);
|
|
|
@@ -67,6 +82,7 @@ class PrivateDiscussionsController extends AbstractController
|
|
|
$em->persist($dm);
|
|
|
$em->persist($discussion);
|
|
|
$em->flush();
|
|
|
+ return $this->redirectToRoute('private_discussions');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -75,6 +91,7 @@ class PrivateDiscussionsController extends AbstractController
|
|
|
'form' => $form->createView(),
|
|
|
'private_discussions' => $private_discussions,
|
|
|
'username' => $session->get('user'),
|
|
|
+ 'error' => "",
|
|
|
]);
|
|
|
}
|
|
|
}
|