<?php
namespace App\Controller;
use App\Entity\Cryptographe;
use App\Form\CryptographeType;
use App\Entity\Application;
use App\Entity\CheckQr;
use App\Entity\Device;
use App\Entity\PersonAppIdentity;
use App\Repository\CryptographeRepository;
use App\Repository\PersonCivilRepository;
use App\Repository\PersonRepository;
use App\Repository\CheckQrRepository;
use App\Repository\PersonAppIdentityRepository;
use App\Repository\ApplicationRepository;
use App\Repository\DeviceRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Filesystem\Filesystem;
use Psr\Container\ContainerInterface;
use App\API\SqrApi as SqrApi;
use App\API\Tech5DigitalApi as Tech5DigitalApi;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\String\Slugger\SluggerInterface;
use GuzzleHttp\Psr7;
use GuzzleHttp\Exception\ClientException;
/**
* @Route("/cryptographe")
*/
class CryptographeController extends AbstractController
{
/**
* @Route("/", name="app_cryptographe_index", methods={"GET"})
*/
public function index(CryptographeRepository $cryptographeRepository): Response
{
$cryptographe = $cryptographeRepository->find(6);
//$ret = $this->createCryptographe($cryptographe);
//$ret = $this->createCryptographeWithLeftAndrightIndex($cryptographe);
$ret = $this->createCustomCryptographe();
dump($ret);die;
return $this->render('cryptographe/index.html.twig', [
'cryptographes' => $cryptographeRepository->findAll(),
]);
}
/**
* @Route("/new", name="app_cryptographe_new", methods={"GET", "POST"})
*/
public function new(Request $request, CryptographeRepository $cryptographeRepository): Response
{
$cryptographe = new Cryptographe();
$form = $this->createForm(CryptographeType::class, $cryptographe);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$cryptographeRepository->add($cryptographe, true);
return $this->redirectToRoute('app_cryptographe_index', [], Response::HTTP_SEE_OTHER);
}
return $this->renderForm('cryptographe/new.html.twig', [
'cryptographe' => $cryptographe,
'form' => $form,
]);
}
/**
* @Route("/read/online", name="app_cryptographe_read_online", methods={"GET", "POST"})
*/
public function readOnline(Request $request, CryptographeRepository $cryptographeRepository, ContainerInterface $container): Response
{
$cryptographeUuid = $request->get("uuid");
if(!empty($cryptographeUuid))
{
$cryptoGraphe = $cryptographeRepository->findOneBy(["cryptoUuid"=>$cryptographeUuid]);
if($cryptoGraphe)
{ /*
try
{ */
$api = new Tech5DigitalApi($container); //DecodeCryptographe ReadCryptographe
$cryptoRead = $api->DecodeCryptographe($cryptoGraphe->getCryptoBase64());
$return = array(
'Etat' =>'SUCCESFULL' ,
'Message' =>"Cryptographe read succesfully !!!",
'cryptographeData' =>$cryptoRead
);
/*
} catch (\Throwable $th)
{
$fs = new Filesystem();
$fs->appendToFile('log/Cryptographe/Reader/'.date("Y")."/".date("d-m-Y").'/cryptoReaderLog.txt', "\r\n ".json_encode($th));
$return = array(
'Etat' =>'FAILED' ,
'Message' =>"Une erreur est survenue lors de l'opération. Veuillez essayer ultérieurement SVP",
'error'=>json_encode($th),
);
}*/
}else
{
$return = array(
'Etat' =>'FAILED' ,
'Message' =>"La référence UUID ne correspond à aucun cryptographe...",
);
}
}else
{
$return = array(
'Etat' =>'FAILED' ,
'Message' =>"Paramètres requis manquants !!!",
);
}
return new JsonResponse($return);
}
/**
* @Route("/get/by/user", name="app_cryptographe_get_by_user_json", methods={"GET", "POST"})
*/
public function getRecordsByUser(Request $request, CryptographeRepository $cryptographeRepository): Response
{
$userRef = $request->get("userRef");
if($userRef)
{
//$cryptographes = $cryptographeRepository->findBy(["savedBy"=>$userRef]);
//$cryptographes = $cryptographeRepository->findAll();
$cryptographes = $cryptographeRepository->findByUserReference($userRef);
$cryptographesTab = array();
if($cryptographes)
{
foreach ($cryptographes as $key)
{
// dump($key);
//dump($key->getCheckQr());
//dump( $key->getCheckQr()->getPersonBiometrics());
$cryptographesTab [] =
[
'civility'=>$key->getCivility(),
'firstName'=>$key->getFirstName(),
'lastName'=>$key->getLastName(),
'dateOfBirth'=>empty($key->getDateOfBirth()) ? null : $key->getDateOfBirth()->format("d/m/Y"),
'placeOfBirth'=>$key->getPlaceOfBirth(),
'email'=>$key->getEmail(),
'demog'=>$key->getDemog(),
'phone'=>$key->getPhone(),
'dateCreated'=>empty($key->getDateCreated()) ? null : $key->getDateCreated()->format("d/m/Y H:i:s"),
//'selfie_link'=>empty($key->getCheckQr()->getPersonBiometrics()) ? null : "uploads/kyvala/enrolment/".$key->getCheckQr()->getPersonBiometrics()[0]->getFace(),
'signature_link'=>empty($key->getSignature()) ? null : "uploads/kyvala/enrolment/".$key->getSignature(),
'cryptoGrapheReference'=>$key->getCheckQr()->getNumero(),
//'abisIdentificationJson'=>empty($key->getCheckQr()->getPersonBiometrics()) ? null : $key->getCheckQr()->getPersonBiometrics()[0]->getAbisIdentificationJson(),
//'isEnrolled'=>empty($key->getCheckQr()->getPersonBiometrics()) ? null : $key->getCheckQr()->getPersonBiometrics()[0]->isIsEnrolled(),
//'isDoublon'=>empty($key->getCheckQr()->getPersonBiometrics()) ? null : $key->getCheckQr()->getPersonBiometrics()[0]->isIsDoublon(),
//'abisEncounterId'=> empty($key->getCheckQr()->getPersonBiometrics()) ? null : $key->getCheckQr()->getPersonBiometrics()[0]->getAbisEncounterId(),
'uuid'=>$key->getCryptoUuid(),
//'cryptographeImage'=>$key->getCryptoBase64()
];
}
$return = array(
'Etat' =>'SUCCESS',
'Message' =>"Cryptographes recupérés avec succès...",
'records' =>$cryptographesTab,
);
} else
{
$return = array(
'Etat' =>'FAILED' ,
'Message' =>"Aucun cryptographe n'a été généré par votre compte...",
'records' =>$cryptographesTab,
);
}
} else
{
$return = array(
'Etat' =>'FAILED' ,
'Message' =>"Paramètres requis manquant(s)"
);
}
return new JsonResponse($return);
}
/** ///save/etat/civil/data/json
* @Route("/new/json", name="app_cryptographe_new_json", methods={"GET", "POST"})
*/
public function newJson(Request $request, CryptographeRepository $cryptographeRepository, SluggerInterface $slugger, ContainerInterface $container, CheckQrRepository $checkQrRepository, PersonRepository $personRepository, ApplicationRepository $applicationRepository, PersonAppIdentityRepository $personAppIdentityRepository, DeviceRepository $deviceRepository ): Response
{
if($_POST)
{
// device info
$deviceId = $request->get("deviceId");
$token = $request->get("deviceToken");
$batteryState = $request->get("batteryState");
$isBatteryPlugIn = $request->get("isBatteryPlugIn");
$package = $request->get("packageName");
$version = $request->get("appVersion");
$appLongitude = $request->get("appLongitude");
$appLatitude = $request->get("appLatitude");
$cryptographe = new Cryptographe();
$sqrRef = $request->get("sqr");//référence sqr
//$referenceUser = $request->get("referenceUser");//référence de l'utilisateur
$appKey = $request->get("app_key");
$civilite = $request->get("civilite");
$nom = $request->get("nom");
$prenom = $request->get("prenom");
$dateNaissance = new \DateTime($request->get("dateNaissance"));
$lieuNaissance = $request->get("lieuNaissance");
$nationalite = $request->get("nationalite");
$paysResidence = $request->get("paysResidence");
$villeResidence = $request->get("villeResidence");
$numeroTelephone = $request->get("numeroTelephone");
$adresseEmail = $request->get("adresseEmail");
$titreDiplome = $request->get("titreDiplome");
$specialisation = $request->get("specialisation");
$etablissement = $request->get("etablissement");
$annee = $request->get("annee");
$numeroReference = $request->get("numeroReference");
$userIdo = $request->get("userIdo");
$checkQr = $checkQrRepository->findOneBy(['numero'=>$sqrRef]);
if($checkQr)
{
/** @var UploadedFile $signature */
$signature = $request->files->get('signature');
// this condition is needed because the 'brochure' field is not required
// so the PDF file must be processed only when a file is uploaded
if ($signature)
{
$originalFilename = pathinfo($signature->getClientOriginalName(), PATHINFO_FILENAME);
// this is needed to safely include the file name as part of the URL
$safeFilename = $slugger->slug($originalFilename);
$newFilename = $safeFilename.'-'.uniqid().'.'.$signature->guessExtension();
// Move the file to the directory where they must be stored
try {
$signature->move(
$this->getParameter('kyvala_directory').'/'.$sqrRef,
$newFilename
);
} catch (FileException $e)
{
// ... handle exception if something happens during file upload
}
$cryptographe->setSignature($sqrRef.'/'.$newFilename);
}
try
{
if (!empty($nom))
{
/*
if(!empty($referenceUser))
{
$person = $personRepository->findOneBySqr($referenceUser);
if($person)
{
$cryptographe->setPerson($person);
}
}
// On enregistre les paramètres de connexion de l'utilisateur dans la table personappidentity pour de futur connexion
if(!empty($appKey))
{
$application = $applicationRepository->findOneBy(['applicationPass'=>$appKey]);
if($application)
{
// device infos persist
$device = new Device();
$device->setDeviceInfo($deviceId);
$device->setDeviceToken($token);
$device->setGpsLatitude($appLatitude);
$device->setGpsLongitude($appLongitude);
$device->setBatteryState($batteryState);
$device->setIsBatteryPlugIn($isBatteryPlugIn);
$device->setPackage($package);
$device->setAppVersion($version);
$deviceRepository->add($device, false);
$personAppIdentity = new PersonAppIdentity();
$personAppIdentity->setApplication($application);
$personAppIdentity->setTelephone($numeroTelephone);
$personAppIdentity->setEmail($adresseEmail);
$personAppIdentity->setPin($pin);
$personAppIdentity->setUserReference($checkQr);
$personAppIdentity->setToken($token);
$personAppIdentity->setDevice($device);
// method to flush
$personAppIdentityRepository->add($personAppIdentity, false);
}else
{
$otherMsg = "La clé envoyé ne correspond à aucune application";
}
}
*/
$cryptographe->setCivility($civilite);
$cryptographe->setFirstName($nom);
$cryptographe->setLastName($prenom);
$cryptographe->setDateOfBirth($dateNaissance);
$cryptographe->setPlaceOfBirth($lieuNaissance);
$cryptographe->setNationality($nationalite);
$cryptographe->setPaysResidence($paysResidence);
$cryptographe->setVilleResidence($villeResidence);
$cryptographe->setPhone($numeroTelephone);
$cryptographe->setEmail($adresseEmail);
$cryptographe->setTitreDiplome($titreDiplome);
$cryptographe->setSpecialisation($specialisation);
$cryptographe->setEtablissement($etablissement);
$cryptographe->setAnnee($annee);
$cryptographe->setNumeroReference($numeroReference);
$cryptographe->setSavedBy($userIdo);
/*
$cryptographe->setTypeOfIdentificationDocument($typeDocumentIdentite);
$cryptographe->setIdentificationDocumentNumber($numeroDocumentIdentite);
$cryptographe->setDateOfIssue($dateDelivrancedocument);
$cryptographe->setDateOfExpirationIssue($dateExpirationDelivranceDocument);
$cryptographe->setDateOfProrogation($dateProrogationDocument);
$cryptographe->setDateOfExpirationProrogation($dateExpirationProrogationDocument);
$cryptographe->setEnrolmentUid($enrolmentUid);
$cryptographe->setEnrolmentId($enrolmentId);
$cryptographe->setEnrolmentSource($enrolmentSource);
*/
$cryptographe->setFirebaseToken($token);
$cryptographe->setFirebasePlateform("MOBILE");
//$cryptographe->setAdresse("");
// spécifier qu'il s'agit d'un enrolement complet
$cryptographe->setStatus(1);
$cryptographe->setCheckQr($checkQr);
$cryptographe = $this->createCryptographe($cryptographe);
// method to flush
$cryptographeRepository->add($cryptographe, true);
if(empty($cryptographe->getCryptoBase64()))
{
$return = array(
'Etat' =>'FAILED' ,
'Message' =>"Issue while generating the cryptographe. Time out issue...",
);
}else
{
$return = array(
'Etat' =>'SUCCESS' ,
'Message' =>"Votre cryptographe est en cours de génération. Vous allez le recevoir par mail.",
'sqr'=>$sqrRef,
'uuid'=>$cryptographe->getCryptoUuid(),
'cryptographeImage'=>$cryptographe->getCryptoBase64(),
);
}
/*
// send notification to Firebase
if(!empty($personCivil->getFirebaseToken()))
{
$this->ParamsWithSendPushNotification($personCivil->getFirebaseToken(),"Votre enrôlement",$civilite." ".$prenom." ".$nom.", Bienvenu(e) sur KYVALA ! Votre enrôlement a été effectué avec succès sous la référence SQR : ".$sqrRef.", Merci de conserver cette référence pour la suite de vos opérations");
}
*/
}else
{
$return = array(
'Etat' =>'FAILED' ,
'Message' =>"Paramètres requis manquants",
);
}
} catch (\Throwable $error)
{
//not actions
$fs = new Filesystem();
//$fs->appendToFile('EventLogFiles.txt', "\r\n ".json_encode($error));
$fs->appendToFile('log/cryptographe/Exceptions/'.date("Y")."/".date("d-m-Y").'/EventLogFilesBio.txt', "\r\n ".date("d-m-Y H:i:s")." Enrollement exception : ".$error);
$return = array(
'Etat' =>'FAILED' ,
'Message' =>"Une erreur est survenue lors de l'opération. Veuillez essayer ultérieurement SVP",
'error'=>$error,
);
}
//////////////////////////////////////////////////////////////
}else
{
$return = array(
'Etat' =>'FAILED',
'Message' =>$sqrRef. "Une erreur est survenue lors de l'enregistrement, aucun enregistrement ne correspond à la référence...",
);
}
}else
{
$return = array(
'Etat' =>'FAILED',
'Message' =>"La méthode d'envoie ne correspond pas aux attentes",
);
}
//$fs1 = new Filesystem();
//$fs1->appendToFile('log/Enrôlement/'.date("Y")."/".date("d-m-Y").'/BiometricsFiles.txt', "\r\n ".json_encode($return));
return new JsonResponse($return);
}
/** ///generate a custom cryptographe.
* @Route("/new/crypto/id", name="app_cryptographe_crypto_id_json", methods={"GET", "POST"})
*/
public function newCryptographeForCryptoId(Request $request, CryptographeRepository $cryptographeRepository, SluggerInterface $slugger, ContainerInterface $container, CheckQrRepository $checkQrRepository, PersonRepository $personRepository, ApplicationRepository $applicationRepository, PersonAppIdentityRepository $personAppIdentityRepository, DeviceRepository $deviceRepository, PersonCivilRepository $personCivilRepository): Response
{
if($_POST)
{
//Device info
$deviceId = $request->get("deviceId");
$token = $request->get("deviceToken");
$batteryState = $request->get("batteryState");
$isBatteryPlugIn = $request->get("isBatteryPlugIn");
$package = $request->get("packageName");
$version = $request->get("appVersion");
$appLongitude = $request->get("appLongitude");
$appLatitude = $request->get("appLatitude");
$sqrRef = $request->get("sqr");//référence sqr
$userIdo = $request->get("userIdo");//référence sqr
$demog = $request->get("demog");
$action = $request->get("action");
$appKey = $request->get("app_key");
$cryptographe = new Cryptographe();
if (!empty($action) && !empty($demog) && !empty($appKey))
{
$checkQr = $checkQrRepository->findOneBy(['numero'=>$sqrRef]);
if($checkQr) //ici on rajoute la référence de la transaction si disponible
{
$cryptographe->setCheckQr($checkQr);
}
$idoAuthor = $personCivilRepository->findOneBySqr($userIdo);// ici on rajoute celui pour qui le crypto est généré
if($idoAuthor)
{
$cryptographe->setUserReference($idoAuthor->getCheckQr());
}
try
{
$cryptographe->setDemog($demog);
$cryptographe->setAction($action);
// spécifier qu'il s'agit d'un enrolement complet
$cryptographe->setStatus(1);
$cryptographe->setFirebaseToken($token);
$cryptographe->setFirebasePlateform("MOBILE");
//$cryptographe->setAdresse("");
$cryptographe = $this->generateCryptoForCryptoId($cryptographe);
// method to flush
$cryptographeRepository->add($cryptographe, true);
$return = array(
'Etat' =>'SUCCESS' ,
'Message' =>"Votre cryptographe est en cours de génération. Vous allez le recevoir par mail.",
'sqr'=>$sqrRef,
'uuid'=>$cryptographe->getCryptoUuid(),
'cryptographeImage'=>$cryptographe->getCryptoBase64(),
);
} catch (\Throwable $error)
{
//not actions
$fs = new Filesystem();
//$fs->appendToFile('EventLogFiles.txt', "\r\n ".json_encode($error));
$fs->appendToFile('log/Cryptographe/Exceptions/'.date("Y")."/".date("d-m-Y").'/EventLogFilesBio.txt', "\r\n ".date("d-m-Y H:i:s")." Enrollement exception : ".$error);
$return = array(
'Etat' =>'FAILED' ,
'Message' =>"Une erreur est survenue lors de l'opération. Veuillez essayer ultérieurement SVP",
'error'=>$error,
);
}
}else
{
$return = array(
'Etat' =>'FAILED' ,
'Message' =>"Paramètres requis manquants",
//'Message' =>$action." ".$appKey,
);
}
}else
{
$return = array(
'Etat' =>'FAILED',
'Message' =>"La méthode d'envoie ne correspond pas aux attentes",
);
}
return new JsonResponse($return);
}
/**
* @Route("/get/crypto/info", name="app_cryptographe_ido_get_json", methods={"GET", "POST"})
*/
public function indexJson(Request $request, CryptographeRepository $cryptographeRepository): Response
{
$referenceUser = $request->get('referenceUser');
$action = empty($request->get('action'))? "IDO" : $request->get('action'); // IDO, EMAIL, PHONE default IDO
if(!empty($referenceUser))
{
switch ($action)
{
case 'IDO':
$cryptographeUser = $cryptographeRepository->findOneBySqr($referenceUser); //OK
break;
default:
# code...
break;
}
if($cryptographeUser)
{
$userDta =
[
'civility'=>$cryptographeUser->getCivility(),
'firstName'=>$cryptographeUser->getFirstName(),
'lastName'=>$cryptographeUser->getLastName(),
'dateOfBirth'=>empty($cryptographeUser->getDateOfBirth()) ? null : $cryptographeUser->getDateOfBirth()->format("d/m/Y"),
'placeOfBirth'=>$cryptographeUser->getPlaceOfBirth(),
'email'=>$cryptographeUser->getEmail(),
'phone'=>$cryptographeUser->getPhone(),
'demog'=>$cryptographeUser->getDemog(),
'dateCreated'=>empty($cryptographeUser->getDateCreated()) ? null : $cryptographeUser->getDateCreated()->format("d/m/Y H:i:s"),
'selfie_link'=>empty($cryptographeUser->getCheckQr()) ? null : "uploads/kyvala/enrolment/".$cryptographeUser->getCheckQr()->getPersonBiometrics()[0]->getFace(),
'signature_link'=>"uploads/kyvala/enrolment/".$cryptographeUser->getSignature(),
'IDO'=>empty($cryptographeUser->getCheckQr()) ? null : $cryptographeUser->getCheckQr()->getNumero(),
'abisIdentificationJson'=>empty($cryptographeUser->getCheckQr()->getPersonBiometrics()) ? null : $cryptographeUser->getCheckQr()->getPersonBiometrics()[0]->getAbisIdentificationJson(),
'isEnrolled'=>empty($cryptographeUser->getCheckQr()->getPersonBiometrics()) ? null : $cryptographeUser->getCheckQr()->getPersonBiometrics()[0]->isIsEnrolled(),
'isDoublon'=>empty($cryptographeUser->getCheckQr()->getPersonBiometrics()) ? null : $cryptographeUser->getCheckQr()->getPersonBiometrics()[0]->isIsDoublon(),
'abisEncounterId'=>empty($cryptographeUser->getCheckQr()->getPersonBiometrics()) ? null : $cryptographeUser->getCheckQr()->getPersonBiometrics()[0]->getAbisEncounterId(),
'uuid'=>$cryptographeUser->getCryptoUuid(),
'cryptographeImage'=>$cryptographeUser->getCryptoBase64()
];
$return = array(
'Etat' =>'SUCCESS' ,
'Message' =>"Données recupérés avec succès !!!",
'userData'=>$userDta
);
}else
{
$return = array(
'Etat' =>'FAILED' ,
'Message' =>"L'identifiant ne correspond à aucun cryptographe...",
);
}
}else
{
$return = array(
'Etat' =>'FAILED' ,
'Message' =>"Paramètres requis manquants..",
);
}
return new JsonResponse($return);
}
/**
* @Route("/{id}", name="app_cryptographe_show", methods={"GET"})
*/
public function show(Cryptographe $cryptographe): Response
{
return $this->render('cryptographe/show.html.twig', [
'cryptographe' => $cryptographe,
]);
}
/**
* @Route("/{id}/edit", name="app_cryptographe_edit", methods={"GET", "POST"})
*/
public function edit(Request $request, Cryptographe $cryptographe, CryptographeRepository $cryptographeRepository): Response
{
$form = $this->createForm(CryptographeType::class, $cryptographe);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$cryptographeRepository->add($cryptographe, true);
return $this->redirectToRoute('app_cryptographe_index', [], Response::HTTP_SEE_OTHER);
}
return $this->renderForm('cryptographe/edit.html.twig', [
'cryptographe' => $cryptographe,
'form' => $form,
]);
}
/**
* @Route("/{id}", name="app_cryptographe_delete", methods={"POST"})
*/
public function delete(Request $request, Cryptographe $cryptographe, CryptographeRepository $cryptographeRepository): Response
{
if ($this->isCsrfTokenValid('delete'.$cryptographe->getId(), $request->request->get('_token'))) {
$cryptographeRepository->remove($cryptographe, true);
}
return $this->redirectToRoute('app_cryptographe_index', [], Response::HTTP_SEE_OTHER);
}
public function createCryptographe(Cryptographe $cryptographe)
{
$sqrRef = $cryptographe->getCheckQr()->getNumero();
$demogData = null;
$demogData = "Civilite:".$cryptographe->getCivility();
$demogData .= ", Nom:".$cryptographe->getFirstName();
$demogData .= ", Prénom:".$cryptographe->getLastName();
$demogData .= ", Date de naissance:".$cryptographe->getDateOfBirth()->format("d/m/Y");
$demogData .= ", Lieu de naissance:".$cryptographe->getPlaceOfBirth();
$demogData .= ", Nationalité:".$cryptographe->getNationality();
$demogData .= ", Pays de résidence:".$cryptographe->getPaysResidence();
$demogData .= ", Ville de résidence:".$cryptographe->getVilleResidence();
$demogData .= ", Telephone:".$cryptographe->getPhone();
$demogData .= ", Email:".$cryptographe->getEmail();
$demogData .= ", Titre diplôme:".$cryptographe->getTitreDiplome();
$demogData .= ", Spécialisation:".$cryptographe->getSpecialisation();
$demogData .= ", Etablissement:".$cryptographe->getEtablissement();
$demogData .= ", Année:".$cryptographe->getAnnee();
$demogData .= ", Numéro référence:".$cryptographe->getNumeroReference();
$fs = new Filesystem();
$fs->appendToFile($this->getParameter('kyvala_directory').'/'.$sqrRef.'/crypto/demog.txt', "\r\n ".$demogData);
$base = "http://poc.kyvala.com/uploads/kyvala/enrolment/";
$face = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFace();
$fpr1 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp1();
$fpr2 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp2();
$fpr3 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp3();
$fpr4 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp4();
$fpr5 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp5();
$fpl1 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp6();
$fpl2 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp7();
$fpl3 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp8();
$fpl4 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp9();
$fpl5 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp10();
/*
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://eval-idencode.tech5.tech/v1/enroll',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('face_image'=> new \CURLFILE($face),'pipeline'=> new \CURLFILE($this->getParameter('kyvala_directory').'/pipeline-with-fp-CR.txt'),'demog'=> new \CURLFILE($this->getParameter('kyvala_directory').'/'.$sqrRef.'/crypto/demog.txt'),'finger_image_r1'=> new \CURLFILE($fpr1),'finger_image_r2'=> new \CURLFILE($fpr2),'finger_image_r3'=> new \CURLFILE($fpr3),'finger_image_r4'=> new \CURLFILE($fpr4),'finger_image_r5'=> new \CURLFILE($fpr5),'finger_image_l1'=> new \CURLFILE($fpl1),'finger_image_l2'=> new \CURLFILE($fpl2),'finger_image_l3'=> new \CURLFILE($fpl3),'finger_image_l4'=> new \CURLFILE($fpl4),'finger_image_l5'=> new \CURLFILE($fpl5)),
));
$response = curl_exec($curl);
dump($response);
//On écris le retours de la fonction dans le log
$fs->appendToFile($this->getParameter('kyvala_directory').'/'.$sqrRef.'/crypto/cryptoGenerationLog.txt', "\r\n ".$response);
$response = json_decode($response,true);
curl_close($curl);
//echo $response;
//$response = json_decode($response,true);
if(isset($response['uuid']) && isset($response['image']))
{
$cryptographe->setCryptoUuid($response['uuid']);
$cryptographe->setCryptoBase64($response['image']);
}
dump($cryptographe);
*/
try
{
//$client = new Client();
$client = new \GuzzleHttp\Client(['verify' => false]);
/* $headers = [
'Authorization' => 'Basic Y2VkcmljLnRjaHVpc3NldUBreXZhbGFpZC5jb206QzNkcjFjQFQ1'
];
*/
$request = $client->post( "https://idencode.tech5-sa.com/v1/enroll", [
'headers'=> ['Authorization' => 'Basic Y2VkcmljLnRjaHVpc3NldUBreXZhbGFpZC5jb206QzNkcjFjQFQ1'],
'multipart' => [
[
'name' => 'face_image',
'contents' => fopen($face, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFace(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'demog',
'contents' => fopen($this->getParameter('kyvala_directory').'/'.$sqrRef.'/crypto/demog.txt', 'r'),
'filename' => 'demog.txt',
'headers' => [
'Content-Type' => 'application/octet-stream'
]
],
[
'name' => 'finger_image_r1',
'contents' => fopen($fpr1, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp1(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'finger_image_r2',
'contents' => fopen($fpr2, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp2(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'finger_image_r3',
'contents' => fopen($fpr3, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp3(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'finger_image_r4',
'contents' => fopen($fpr4, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp4(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'finger_image_r5',
'contents' => fopen($fpr5, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp5(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'finger_image_l1',
'contents' => fopen($fpl1, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp6(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'finger_image_l2',
'contents' => fopen($fpl2, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp7(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'finger_image_l3',
'contents' => fopen($fpl3, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp8(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'finger_image_l4',
'contents' => fopen($fpl4 , 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp9(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'finger_image_l5',
'contents' => fopen($fpl5, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp10(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'pipeline',
'contents' => fopen('http://poc.kyvala.com/uploads/createCryptographerequest/pipeline-with-fp-CR.txt', 'r'),
'filename' => 'pipeline-with-fp-CR.txt',
'headers' => [
'Content-Type' => 'application/json'
]
]
]]);
$body = $request->getBody();
//dump((string) $body);
//$stringBody = ;
//die;
$response = json_decode((string) $body,true);
//$state = "SUCCESS";
//$msg = "Cryptographe généré avec succès !!!";
if(isset($response['uuid']) && isset($response['image']))
{
$cryptographe->setCryptoUuid($response['uuid']);
$cryptographe->setCryptoBase64($response['image']);
}
} catch (ClientException $e)
{
$state = "FAILED";
$fst = new Filesystem();
//$fs->appendToFile('EventLogFiles.txt', "\r\n ".json_encode($error));
$fst->appendToFile('log/GuzzleException/'.date("Y")."/".date("d-m-Y").'/guzzleException.txt', "\r\n ".date("d-m-Y H:i:s")." - request : ".Psr7\Message::toString($e->getRequest()));
$fst->appendToFile('log/GuzzleException/'.date("Y")."/".date("d-m-Y").'/guzzleException.txt', "\r\n ".date("d-m-Y H:i:s")." - Response : ".Psr7\Message::toString($e->getResponse()));
$msg = Psr7\Message::toString($e->getResponse());
}
/*
$retour = [
'ETAT'=>$state,
'retour'=>$response,
'Message'=>$msg
];*/
return $cryptographe;
}
public function createCryptographeWithLeftAndrightIndex(Cryptographe $cryptographe)
{
$sqrRef = $cryptographe->getCheckQr()->getNumero();
$demogData = null;
$demogData = "Civilite:".$cryptographe->getCivility();
$demogData .= ", Nom:".$cryptographe->getFirstName();
$demogData .= ", Prénom:".$cryptographe->getLastName();
$demogData .= ", Date de naissance:".$cryptographe->getDateOfBirth()->format("d/m/Y");
$demogData .= ", Lieu de naissance:".$cryptographe->getPlaceOfBirth();
$demogData .= ", Nationalité:".$cryptographe->getNationality();
$demogData .= ", Pays de résidence:".$cryptographe->getPaysResidence();
$demogData .= ", Ville de résidence:".$cryptographe->getVilleResidence();
$demogData .= ", Telephone:".$cryptographe->getPhone();
$demogData .= ", Email:".$cryptographe->getEmail();
$demogData .= ", Titre diplôme:".$cryptographe->getTitreDiplome();
$demogData .= ", Spécialisation:".$cryptographe->getSpecialisation();
$demogData .= ", Etablissement:".$cryptographe->getEtablissement();
$demogData .= ", Année:".$cryptographe->getAnnee();
$demogData .= ", Numéro référence:".$cryptographe->getNumeroReference();
$fs = new Filesystem();
$fs->appendToFile($this->getParameter('kyvala_directory').'/'.$sqrRef.'/crypto/demog.txt', "\r\n ".$demogData);
$base = "http://poc.kyvala.com/uploads/kyvala/enrolment/";
$face = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFace();
/*
$fpr1 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp1();
$fpr2 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp2();
$fpr3 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp3();
$fpr4 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp4();
$fpr5 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp5();
$fpl1 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp6();
$fpl3 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp8();
$fpl4 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp9();
$fpl5 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp10();
*/
$fpl2 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp7();
try
{
//$client = new Client();
$client = new \GuzzleHttp\Client(['verify' => false]);
/* $headers = [
'Authorization' => 'Basic Y2VkcmljLnRjaHVpc3NldUBreXZhbGFpZC5jb206QzNkcjFjQFQ1'
];
*/
$request = $client->post( "https://idencode.tech5-sa.com/v1/enroll", [
'headers'=> ['Authorization' => 'Basic Y2VkcmljLnRjaHVpc3NldUBreXZhbGFpZC5jb206QzNkcjFjQFQ1'],
'multipart' => [
[
'name' => 'face_image',
'contents' => fopen($face, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFace(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'demog',
'contents' => fopen($this->getParameter('kyvala_directory').'/'.$sqrRef.'/crypto/demog.txt', 'r'),
'filename' => 'demog.txt',
'headers' => [
'Content-Type' => 'application/octet-stream'
]
],
[
'name' => 'finger_image_l2',
'contents' => fopen($fpl2, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp7(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'pipeline',
'contents' => fopen('http://poc.kyvala.com/uploads/createCryptographerequest/pipeline-with-left-index.txt', 'r'),
'filename' => 'pipeline-with-fp-CR.txt',
'headers' => [
'Content-Type' => 'application/json'
]
]
]]);
$body = $request->getBody();
//dump((string) $body);
//$stringBody = ;
//die;
$response = json_decode((string) $body,true);
//$state = "SUCCESS";
//$msg = "Cryptographe généré avec succès !!!";
if(isset($response['uuid']) && isset($response['image']))
{
$cryptographe->setCryptoUuid($response['uuid']);
$cryptographe->setCryptoBase64($response['image']);
}
} catch (ClientException $e)
{
$state = "FAILED";
$fst = new Filesystem();
//$fs->appendToFile('EventLogFiles.txt', "\r\n ".json_encode($error));
$fst->appendToFile('log/GuzzleException/'.date("Y")."/".date("d-m-Y").'/guzzleException.txt', "\r\n ".date("d-m-Y H:i:s")." - request : ".Psr7\Message::toString($e->getRequest()));
$fst->appendToFile('log/GuzzleException/'.date("Y")."/".date("d-m-Y").'/guzzleException.txt', "\r\n ".date("d-m-Y H:i:s")." - Response : ".Psr7\Message::toString($e->getResponse()));
$msg = Psr7\Message::toString($e->getResponse());
}
/*
$retour = [
'ETAT'=>$state,
'retour'=>$response,
'Message'=>$msg
];*/
return $cryptographe;
}
public function createCustomCryptographe()
{
$base = "http://poc.kyvala.com/uploads/kyvala/enrolment/";
$response = null;
try
{
//$client = new Client();
$client = new \GuzzleHttp\Client(['verify' => false]);
/* $headers = [
'Authorization' => 'Basic Y2VkcmljLnRjaHVpc3NldUBreXZhbGFpZC5jb206QzNkcjFjQFQ1'
];
*/
$request = $client->post( "https://idencode.tech5-sa.com/v1/enroll", [
'headers'=> ['Authorization' => 'Basic Y2VkcmljLnRjaHVpc3NldUBreXZhbGFpZC5jb206QzNkcjFjQFQ1'],
'multipart' => [
[
'name' => 'demog',
'contents' => fopen('http://poc.kyvala.com/uploads/cryptographeData/demog-timbre-fiscal.txt', 'r'),
'filename' => 'demog-timbre-fiscal.txt',
'headers' => [
'Content-Type' => 'application/octet-stream'
]
],
[
'name' => 'pipeline',
'contents' => fopen('http://poc.kyvala.com/uploads/cryptographeData/Pipe-line-crypto-only-big-demog.txt', 'r'),
'filename' => 'Pipe-line-crypto-only-big-demog.txt',
'headers' => [
'Content-Type' => 'application/json'
]
]
]]);
$body = $request->getBody();
//dump((string) $body);
//$stringBody = ;
//die;
$response = json_decode((string) $body,true);
$state = "SUCCESS";
$msg = "Cryptographe généré avec succès !!!";
/*
if(isset($response['uuid']) && isset($response['image']))
{
$cryptographe->setCryptoUuid($response['uuid']);
$cryptographe->setCryptoBase64($response['image']);
}
*/
} catch (ClientException $e)
{
$state = "FAILED";
$fst = new Filesystem();
//$fs->appendToFile('EventLogFiles.txt', "\r\n ".json_encode($error));
$fst->appendToFile('log/GuzzleException/'.date("Y")."/".date("d-m-Y").'/guzzleException.txt', "\r\n ".date("d-m-Y H:i:s")." - request : ".Psr7\Message::toString($e->getRequest()));
$fst->appendToFile('log/GuzzleException/'.date("Y")."/".date("d-m-Y").'/guzzleException.txt', "\r\n ".date("d-m-Y H:i:s")." - Response : ".Psr7\Message::toString($e->getResponse()));
$msg = Psr7\Message::toString($e->getResponse());
}
$retour = [
'ETAT'=>$state,
'retour'=>$response,
'Message'=>$msg
];
return $retour;
}
public function managePipeline()
{
// Chemin vers ton fichier JSON
$jsonFile = 'chemin/vers/ton_fichier.json';
// Charger le contenu du fichier
$jsonData = file_get_contents($jsonFile);
$data = json_decode($jsonData, true);
// Vérifie que le tableau a bien la section fingerPipelines
if (!isset($data['fingerPipelines']) || !is_array($data['fingerPipelines'])) {
$data['fingerPipelines'] = [];
}
// ----------- AJOUTER UN NOUVEAU FINGER ------------
function addFingerPipeline(&$data, $newFinger) {
// Évite les doublons sur fieldId
foreach ($data['fingerPipelines'] as $finger) {
if ($finger['fieldId'] === $newFinger['fieldId']) {
echo "Cet élément existe déjà.\n";
return;
}
}
$data['fingerPipelines'][] = $newFinger;
echo "Élément ajouté avec succès.\n";
}
// ----------- SUPPRIMER UN FINGER PAR fieldId ------------
function removeFingerPipeline(&$data, $fieldIdToRemove) {
$originalCount = count($data['fingerPipelines']);
$data['fingerPipelines'] = array_filter($data['fingerPipelines'], function ($item) use ($fieldIdToRemove) {
return $item['fieldId'] !== $fieldIdToRemove;
});
$data['fingerPipelines'] = array_values($data['fingerPipelines']); // Réindexation
if (count($data['fingerPipelines']) < $originalCount) {
echo "Élément supprimé avec succès.\n";
} else {
echo "Aucun élément trouvé avec ce fieldId.\n";
}
}
// ------------------ EXEMPLES ------------------
// Exemple d'ajout
$newFinger = [
"fieldId" => "finger_image_extra",
"fingerType" => "EX",
"templateType" => "NistT5"
];
addFingerPipeline($data, $newFinger);
// Exemple de suppression
removeFingerPipeline($data, "finger_image_r5");
// Enregistrer les modifications dans le fichier
file_put_contents($jsonFile, json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES));
}
public function generateCryptoForCryptoId(Cryptographe $cryptographe)
{
if(empty($cryptographe->getCheckQr()))
{
//$sqrRef = $cryptographe->getUserReference()->getNumero();
$sqrRef = $cryptographe->getCheckQr()->getNumero();
}else
{
$sqrRef = date("d-m-Y-H:i:s");
}
$demogData = $cryptographe->getDemog();
$fs = new Filesystem();
$fs->appendToFile($this->getParameter('kyvala_directory').'/'.$sqrRef.'/crypto/demog.txt', "\r\n ".$demogData);
$base = "http://poc.kyvala.com/uploads/kyvala/enrolment/";
try
{
switch ($cryptographe->getAction())
{
case 'CRYPTOID':
# code...
$face = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFace();
$fpr1 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp1();
$fpr2 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp2();
$fpr3 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp3();
$fpr4 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp4();
$fpr5 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp5();
$fpl1 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp6();
$fpl2 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp7();
$fpl3 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp8();
$fpl4 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp9();
$fpl5 = $base.$cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp10();
//$client = new Client();
$client = new \GuzzleHttp\Client(['verify' => false]);
/* $headers = [
'Authorization' => 'Basic Y2VkcmljLnRjaHVpc3NldUBreXZhbGFpZC5jb206QzNkcjFjQFQ1'
];
*/
/*
$request = $client->post( "https://idencode.tech5-sa.com/v1/enroll", [
'headers'=> ['Authorization' => 'Basic Y2VkcmljLnRjaHVpc3NldUBreXZhbGFpZC5jb206QzNkcjFjQFQ1'],
'multipart' =>
[
[
'name' => 'face_image',
'contents' => fopen($face, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFace(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'demog',
'contents' => fopen($this->getParameter('kyvala_directory').'/'.$sqrRef.'/crypto/demog.txt', 'r'),
'filename' => 'demog.txt',
'headers' => [
'Content-Type' => 'application/octet-stream'
]
],
[
'name' => 'finger_image_r2',
'contents' => fopen($fpr2, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp2(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'finger_image_r3',
'contents' => fopen($fpr3, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp3(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'finger_image_l2',
'contents' => fopen($fpl2, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp7(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'finger_image_l3',
'contents' => fopen($fpl3, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp8(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'pipeline',
'contents' => fopen('http://poc.kyvala.com/uploads/createCryptographerequest/pipeline-with-fp-crypto_id.txt', 'r'),
'filename' => 'pipeline-with-fp-CR.txt',
'headers' => [
'Content-Type' => 'application/json'
]
]
]]);*/
$request = $client->post( "https://idencode.tech5-sa.com/v1/enroll", [
'headers'=> ['Authorization' => 'Basic Y2VkcmljLnRjaHVpc3NldUBreXZhbGFpZC5jb206QzNkcjFjQFQ1'],
'multipart' =>
[
[
'name' => 'face_image',
'contents' => fopen($face, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFace(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'demog',
'contents' => fopen($this->getParameter('kyvala_directory').'/'.$sqrRef.'/crypto/demog.txt', 'r'),
'filename' => 'demog.txt',
'headers' => [
'Content-Type' => 'application/octet-stream'
]
],
[
'name' => 'finger_image_r2',
'contents' => fopen($fpr2, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp2(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'finger_image_l2',
'contents' => fopen($fpl2, 'r'),
'filename' => $cryptographe->getCheckQr()->getPersonBiometrics()[0]->getFp7(),
'headers' => [
'Content-Type' => 'image/png'
]
],
[
'name' => 'pipeline',
'contents' => fopen('http://poc.kyvala.com/uploads/createCryptographerequest/pipeline-with-fp-crypto_id_updated.txt', 'r'),
'filename' => 'pipeline-with-fp-CR.txt',
'headers' => [
'Content-Type' => 'application/json'
]
]
]]);
$body = $request->getBody();
//dump((string) $body);die;
//$stringBody = ;
//die;
$response = json_decode((string) $body,true);
//$state = "SUCCESS";
//$msg = "Cryptographe généré avec succès !!!";
//dump($response);die;
if(isset($response['uuid']) && isset($response['image']))
{
$cryptographe->setCryptoUuid($response['uuid']);
$cryptographe->setCryptoBase64($response['image']);
}
break;
case 'STAMPS':
//$client = new Client();
$client = new \GuzzleHttp\Client(['verify' => false]);
/* $headers = [
'Authorization' => 'Basic Y2VkcmljLnRjaHVpc3NldUBreXZhbGFpZC5jb206QzNkcjFjQFQ1'
];
*/
$request = $client->post( "https://idencode.tech5-sa.com/v1/enroll", [
'headers'=> ['Authorization' => 'Basic Y2VkcmljLnRjaHVpc3NldUBreXZhbGFpZC5jb206QzNkcjFjQFQ1'],
'multipart' =>
[
[
'name' => 'demog',
'contents' => fopen($this->getParameter('kyvala_directory').'/'.$sqrRef.'/crypto/demog.txt', 'r'),
'filename' => 'demog.txt',
'headers' => [
'Content-Type' => 'application/octet-stream'
]
],
[
'name' => 'pipeline',
'contents' => fopen('http://poc.kyvala.com/uploads/createCryptographerequest/Pipe-line-for-taxes.txt', 'r'),
'filename' => 'pipeline-with-fp-CR.txt',
'headers' => [
'Content-Type' => 'application/json'
]
]
]]);
$body = $request->getBody();
//dump((string) $body);
//$stringBody = ;
//die;
$response = json_decode((string) $body,true);
//$state = "SUCCESS";
//$msg = "Cryptographe généré avec succès !!!";
if(isset($response['uuid']) && isset($response['image']))
{
$cryptographe->setCryptoUuid($response['uuid']);
$cryptographe->setCryptoBase64($response['image']);
}
break;
default:
# code...
die("Error in action");
break;
}
} catch (ClientException $e)
{
$state = "FAILED";
$fst = new Filesystem();
//$fs->appendToFile('EventLogFiles.txt', "\r\n ".json_encode($error));
$fst->appendToFile('log/Cryptographe/Exceptions/'.date("Y")."/".date("d-m-Y").'/guzzleException.txt', "\r\n ".date("d-m-Y H:i:s")." - request : ".Psr7\Message::toString($e->getRequest()));
$fst->appendToFile('log/Cryptographe/Exceptions/'.date("Y")."/".date("d-m-Y").'/guzzleException.txt', "\r\n ".date("d-m-Y H:i:s")." - Response : ".Psr7\Message::toString($e->getResponse()));
$msg = Psr7\Message::toString($e->getResponse());
}
/*
$retour = [
'ETAT'=>$state,
'retour'=>$response,
'Message'=>$msg
];*/
return $cryptographe;
}
}