<?php
namespace App\Controller;
use App\Entity\User;
use App\Form\UserType;
use App\Service\CallApiService;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class HomeController extends AbstractController
{
private $doctrine;
public function __construct(ManagerRegistry $doctrine)
{
$this->doctrine = $doctrine;
}
#[Route('/', name: 'app_home')]
public function index(CallApiService $callApiService, Request $request): Response
{
$user = new User;
$form = $this->createForm(UserType::class, $user);
$form->handlerequest($request);
if ($form->issubmitted() && $form->isvalid()) {
// on appelle l'API pour se connecter à la base
$token = $callApiService->connexionBase()['response']['token'];
// on enregistre le token dans la session
$session = $request->getSession();
$session->set('token', $token);
// on verifie le compte
$compte = $callApiService->verifCompte($token, $user->getLogin());
if (is_array($compte['response'])) {
// on teste le mot de passe
if ($compte['response']['data'][0]['fieldData']['Mot_passe'] == $user->getPassword()) {
$societe = $compte['response']['data'][0]['fieldData']['zkp_societe'];
$session->set('societe', $societe);
$nom = $compte['response']['data'][0]['fieldData']['Societe'];
$session->set('nom', $nom);
return $this->redirectToRoute('app_factures');
} else {
return $this->render('home/index.html.twig', [
'controller_name' => 'Connexion à l\'extranet de Proxi-Info',
'erreur' => 'Le mot de passe saisi est incorrect.Merci de vérifier votre saisie',
'form' => $form->createView()
]);
}
} else {
// le compte n'existe pas
return $this->render('home/index.html.twig', [
'controller_name' => 'Connexion à l\'extranet de Proxi-Info',
'erreur' => 'Ce login n\'existe pas. Merci de vérifier votre saisie ou de contacter la société.',
'form' => $form->createView()
]);
}
}
return $this->render('home/index.html.twig', [
'controller_name' => 'Connexion à l\'extranet de Proxi-Info',
'erreur' => '',
'form' => $form->createView()
]);
}
}