init project
This commit is contained in:
112
src/Controller/Frontend/SoftwareController.php
Normal file
112
src/Controller/Frontend/SoftwareController.php
Normal file
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller\Frontend;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
|
||||
use Symfony\Component\Routing\Attribute\Route;
|
||||
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
|
||||
use App\Service\CryptoService;
|
||||
|
||||
use App\Repository\UserRepository;
|
||||
use App\Repository\SoftwareActivationRepository;
|
||||
|
||||
|
||||
#[Route('/software')]
|
||||
final class SoftwareController extends AbstractController
|
||||
{
|
||||
/**
|
||||
* @param SoftwareActivationRepository $softwareActivationRepository
|
||||
* @param UserRepository $userRepository
|
||||
* @param EntityManagerInterface $em
|
||||
* @return $this
|
||||
*/
|
||||
public function __construct(
|
||||
private UserRepository $userRepository,
|
||||
private SoftwareActivationRepository $softwareActivationRepository,
|
||||
private CryptoService $cryptoService,
|
||||
private EntityManagerInterface $em
|
||||
){
|
||||
$this->em = $em;
|
||||
$this->userRepository = $userRepository;
|
||||
$this->cryptoService = $cryptoService;
|
||||
$this->softwareActivationRepository = $softwareActivationRepository;
|
||||
}
|
||||
|
||||
#[Route('/activation', name: 'software_activation')]
|
||||
public function activation(Request $request): JsonResponse
|
||||
{
|
||||
$id = $request->get('id');
|
||||
$companyName = $request->get('CompanyName');
|
||||
$companyMF = $request->get('CompanyMF');
|
||||
$pcName = $request->get('PCName');
|
||||
$partnerEmail = $request->get('Partner');
|
||||
$disqueNom = $request->get('DisqueNom');
|
||||
$disqueModel = $request->get('DisqueModel');
|
||||
$disqueSerial = $request->get('DisqueSerial');
|
||||
$user = null;
|
||||
$statu = 0;
|
||||
|
||||
/*
|
||||
pour le code
|
||||
0 | null --> n'ai pas encore activer
|
||||
1 --> activer
|
||||
2 --> La demande a été bien envoyer pour activé le logiciel
|
||||
n --> erreur
|
||||
*/
|
||||
if($id){
|
||||
$softwareActivation = $this->softwareActivationRepository->find($id);
|
||||
}else{
|
||||
$softwareActivation = $this->softwareActivationRepository->findOneBy(['disqueNom'=>$disqueNom, 'disqueModel'=>$disqueModel, 'disqueSerial'=>$disqueSerial]);
|
||||
}
|
||||
|
||||
|
||||
if($partnerEmail)
|
||||
{
|
||||
$user = $this->userRepository->findOneBy(['email'=>$partnerEmail]);
|
||||
if(!$user){
|
||||
return new JsonResponse(['code'=>404, 'message'=>'partenaire inconnu', 'body'=>[]]);
|
||||
}else{
|
||||
$partner = $user->getPartner();
|
||||
if($partner){
|
||||
if(!$partner->isActive()){
|
||||
return new JsonResponse(['code'=>403, 'message'=>'Accès refusé au partner', 'body'=>[]]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($softwareActivation)
|
||||
{
|
||||
if($softwareActivation->getStatu() == 1)
|
||||
{
|
||||
return new JsonResponse(['code'=>1, 'message'=>'true', 'body'=>[
|
||||
'Id'=>$softwareActivation->getId(),
|
||||
'Date'=>$softwareActivation->getDateAddFormat('Y-m-d H:i:s'),
|
||||
'DisqueNom'=>$this->cryptoService->chiffrer($disqueNom),
|
||||
'DisqueModel'=>$this->cryptoService->chiffrer($disqueModel),
|
||||
'DisqueSerial'=>$this->cryptoService->chiffrer($disqueSerial),
|
||||
]]);
|
||||
}else{
|
||||
return new JsonResponse(['code'=>0, 'message'=>"n'ai pas encore activer", 'body'=>[
|
||||
'Id'=>$softwareActivation->getId(),
|
||||
]]);
|
||||
}
|
||||
|
||||
}else{
|
||||
$softwareActivation = $this->softwareActivationRepository->addSoftwareActivation($companyName, $companyMF, $pcName, $user, $disqueNom, $disqueModel, $disqueSerial, $statu);
|
||||
return new JsonResponse(['code'=>2, 'message'=>'La demande a été bien envoyer pour activé le logiciel', 'body'=>[
|
||||
'Id'=>$softwareActivation->getId(),
|
||||
]]);
|
||||
}
|
||||
|
||||
return new JsonResponse(['code'=>500, 'message'=>"erreur lors d'activation du logiciel", 'body'=>[]]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user