feat(api kaz): Connexion à l'api kaz.

- Suppression des migrations, templates et configurations inutiles (ex. `compose.override.yaml`).
- Mise à jour de l'entité `User` :
  - Renommage des attributs pour correspondre aux conventions (`emailDeSecours` → `alternateEmail`, etc.).
  - Implémentation d'un mapper `updateFromKazUser` pour synchroniser les données depuis l'API Kaz.
- Refactorisation des migrations pour aligner les changements de schéma.
- Mise à jour du formulaire utilisateur et des fixtures en conséquence.
- Ajout du template Twig `profil_infos.html.twig` pour afficher les informations utilisateur. (A supprimer)
This commit is contained in:
MLeveque
2026-03-29 13:45:07 +02:00
parent 23789ab33e
commit e7e6d7c1af
16 changed files with 153 additions and 159 deletions

View File

@@ -0,0 +1,48 @@
<?php
namespace App\Service;
use Symfony\Component\HttpFoundation\File\Exception\FileException;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\String\Slugger\SluggerInterface;
class FileUploader
{
// On utilise la promotion de constructeur (PHP 8) : ultra moderne et concis
public function __construct(
private string $targetDirectory,
private SluggerInterface $slugger,
) {
}
public function upload(UploadedFile $file): string
{
$originalFilename = pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME);
$safeFilename = $this->slugger->slug($originalFilename);
$fileName = $safeFilename . '-' . uniqid() . '.' . $file->guessExtension();
try {
$file->move($this->getTargetDirectory(), $fileName);
} catch (FileException $e) {
// Ici tu peux logguer l'erreur si besoin
throw new \Exception('Erreur lors du transfert de l\'image : ' . $e->getMessage());
}
return $fileName;
}
public function delete(?string $fileName): void
{
if ($fileName) {
$filePath = $this->getTargetDirectory() . 'FileUploader.php/' . $fileName;
if (file_exists($filePath)) {
unlink($filePath);
}
}
}
public function getTargetDirectory(): string
{
return $this->targetDirectory;
}
}