Skip to content
Snippets Groups Projects
Select Git revision
  • a43cf6d95a632c0a3b566a88b0fb692bfc71e26e
  • master default protected
  • ll-wf-finitions
  • b24
  • ll-workflow
  • alc-scindage-donnees-pj
  • FJ_LL_Tbl_Contrat
  • alc-docker-node
  • ll-apiplatform
  • php84
  • ll-rgpd
  • b23
  • alc-filtre-type-intervenant
  • ll-sans-mdb5
  • formules-ancienne-infra
  • ll-formules
  • alc-intervenant-dmep
  • ll-suppr-v_vol-s
  • b20
  • ll-postgresql
  • b23.0.1
  • 24.10
  • 24.9
  • 24.8
  • 24.7
  • 24.6
  • 24.5
  • 24.4
  • 24.3
  • 24.2
  • 24.1
  • 24.0
  • 23.15
  • 24.0-beta19
  • 24.0-beta18
  • 24.0-beta17
  • 24.0-beta16
  • 24.0-beta15
  • 24.0-beta14
  • 24.0-beta13
  • 23.14
41 results

EntityServiceFactory.php

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    IndexController.php 2.91 KiB
    <?php
    
    namespace UnicaenDbAnonym\Controller;
    
    use Application\Controller\AbstractController;
    use Exception;
    use Laminas\View\Model\ViewModel;
    use RuntimeException;
    use UnicaenSql\Service\SQL\RunSQLResult;
    use UnicaenDbAnonym\Service\AnonymServiceAwareTrait;
    
    class IndexController extends AbstractController
    {
        use AnonymServiceAwareTrait;
    
        public function indexAction(): array
        {
            $anonymisationScriptPath = $this->anonymService->getAnonymisationScriptPath();
            $restaurationScriptPath = $this->anonymService->getRestaurationScriptPath();
    
            $data = [];
            if (file_exists($anonymisationScriptPath) && file_exists($restaurationScriptPath)) {
                $data['anonymisationScriptPath'] = $anonymisationScriptPath;
                $data['restaurationScriptPath'] = $restaurationScriptPath;
            } else {
                $data['anonymisationScriptPath'] = null;
                $data['restaurationScriptPath'] = null;
            }
    
            return $data;
        }
    
        public function genererAction(): array
        {
            $anonymisationScriptPath = $this->anonymService->getAnonymisationScriptPath();
            $restaurationScriptPath = $this->anonymService->getRestaurationScriptPath();
            $messages = [];
    
            try {
                $gen = $this->anonymService->genererScripts();
                foreach ($gen as ['table' => $table, 'fields' => $fields, 'count' => $count]) {
                    $messages[] = sprintf("- Table %s (colonnes %s) : %d lignes", $table, implode(', ', $fields), $count);
                }
            } catch (Exception $e) {
                throw new RuntimeException("Une erreur est survenue pendant la génération des scripts SQL.", null, $e);
            }
    
            return [
                'messages' => $messages,
                'anonymisationScriptPath' => $anonymisationScriptPath,
                'restaurationScriptPath' => $restaurationScriptPath,
            ];
        }
    
        public function anonymiserAction(): ViewModel
        {
            $scriptPath = $this->anonymService->getAnonymisationScriptPath();
    
            try {
                $result = $this->anonymService->anonymiser();
            } catch (Exception $e) {
                throw new RuntimeException("Une erreur est survenue lors du lancement du script '$scriptPath'.", null, $e);
            }
    
            return $this->resultViewModel($result);
        }
    
        public function restaurerAction(): ViewModel
        {
            $scriptPath = $this->anonymService->getRestaurationScriptPath();
    
            try {
                $result = $this->anonymService->restaurer();
            } catch (Exception $e) {
                throw new RuntimeException("Une erreur est survenue lors du lancement du script '$scriptPath'.", null, $e);
            }
    
            return $this->resultViewModel($result);
        }
    
        protected function resultViewModel(RunSQLResult $result): ViewModel
        {
            $vm = new ViewModel([
                'result' => $result,
            ]);
            $vm ->setTemplate('unicaen-db-anonym/index/result');
    
            return $vm;
        }
    }