Commit 01d60ebd authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Affichage des logs d'import/synchro en live (avec unicaen/livelog)

parent 2fff8886
Loading
Loading
Loading
Loading
Loading
+8 −4
Changes for config/module.config.php: 8 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -4,6 +4,8 @@ namespace UnicaenDbImport;

use Doctrine\ORM\Mapping\Driver\XmlDriver;
use Doctrine\Persistence\Mapping\Driver\MappingDriverChain;
use Laminas\Router\Http\Literal;
use Laminas\Router\Http\Segment;
use UnicaenAuth\Guard\PrivilegeController;
use UnicaenDbImport\CodeGenerator\HelperAbstractFactory;
use UnicaenDbImport\Config\Config;
@@ -29,6 +31,8 @@ use UnicaenDbImport\Entity\Db\Service\ImportObservResult\ImportObservResultServi
use UnicaenDbImport\Entity\Db\Service\Source\SourceService;
use UnicaenDbImport\Entity\Db\Service\Source\SourceServiceFactory;
use UnicaenDbImport\Entity\Db\Source;
use UnicaenDbImport\Log\LivelogLogger;
use UnicaenDbImport\Log\LivelogLoggerFactory;
use UnicaenDbImport\ORM\Event\Listeners\SourceListener;
use UnicaenDbImport\ORM\Event\Listeners\SourceListenerFactory;
use UnicaenDbImport\Privilege\ImportPrivilege;
@@ -45,14 +49,12 @@ use UnicaenDbImport\Service\Facade\ImportFacadeService;
use UnicaenDbImport\Service\Facade\ImportFacadeServiceFactory;
use UnicaenDbImport\Service\Facade\LogFacadeService;
use UnicaenDbImport\Service\Facade\LogFacadeServiceFactory;
use UnicaenDbImport\Service\ImportService;
use UnicaenDbImport\Service\ImportServiceFactory;
use UnicaenDbImport\Service\Facade\SynchroFacadeService;
use UnicaenDbImport\Service\Facade\SynchroFacadeServiceFactory;
use UnicaenDbImport\Service\ImportService;
use UnicaenDbImport\Service\ImportServiceFactory;
use UnicaenDbImport\Service\SynchroService;
use UnicaenDbImport\Service\SynchroServiceFactory;
use Laminas\Router\Http\Literal;
use Laminas\Router\Http\Segment;

return [
    'import' => [
@@ -568,6 +570,8 @@ return [
            ImportObservResultService::class => ImportObservResultServiceFactory::class,

            SourceListener::class => SourceListenerFactory::class,

            LivelogLogger::class => LivelogLoggerFactory::class,
        ],
        'abstract_factories' => [
            HelperAbstractFactory::class,
+12 −15
Changes for src/UnicaenDbImport/Controller/ConsoleControllerFactory.php: 12 added lines, 15 removed lines.
Original line number Diff line number Diff line
@@ -2,9 +2,9 @@

namespace UnicaenDbImport\Controller;

use Laminas\Log\Logger;
use Laminas\Log\PsrLoggerAdapter;
use Laminas\Log\Writer\Stream;
use Laminas\Console\Adapter\Posix;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface;
use UnicaenDbImport\Service\ImportService;
@@ -13,24 +13,24 @@ use UnicaenDbImport\Service\SynchroService;
class ConsoleControllerFactory
{
    /**
     * @param \Interop\Container\ContainerInterface $sl
     * @param \Laminas\ServiceManager\ServiceManager $container
     * @return \UnicaenDbImport\Controller\ConsoleController
     * @throws \Psr\Container\ContainerExceptionInterface
     * @throws \Psr\Container\NotFoundExceptionInterface
     */
    function __invoke(ContainerInterface $sl): ConsoleController
    function __invoke(ContainerInterface $container): ConsoleController
    {
        /** @var ImportService $importService */
        $importService = $sl->get(ImportService::class);
        $synchroService = $sl->get(SynchroService::class);

        $logger = $this->createLogger();
        $importService->setLogger($logger);
        $synchroService->setLogger($logger);

        /** @var ImportService $importService */
        $importService = $container->build(ImportService::class, ['logger' => $logger]);
        /** @var SynchroService $synchroService */
        $synchroService = $container->build(SynchroService::class, ['logger' => $logger]);

        $controller = new ConsoleController();
        $controller->setImportService($importService);
        $controller->setSynchroService($synchroService);
        $controller->setConsole(new Posix());

        return $controller;
    }
@@ -40,9 +40,6 @@ class ConsoleControllerFactory
     */
    private function createLogger(): LoggerInterface
    {
        $logger = new Logger();
        $logger->addWriter(new Stream('php://output'));

        return new PsrLoggerAdapter($logger);
        return new Logger('console', [new StreamHandler('php://output')]);
    }
}
 No newline at end of file
+16 −4
Changes for src/UnicaenDbImport/Controller/ImportController.php: 16 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -2,7 +2,6 @@

namespace UnicaenDbImport\Controller;

use Laminas\Http\Response;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\JsonModel;
use UnicaenDbImport\Domain\ImportInterface;
@@ -60,37 +59,50 @@ class ImportController extends AbstractActionController
    /**
     * Lancement d'un import.
     *
     * @return \Laminas\Http\Response|bool
     * @throws \Exception
     */
    public function lancerAction(): Response
    public function lancerAction()
    {
        $name = $this->params('name');
        $import = $this->importService->getImportByName($name);

        $result = $this->importService->runImport($import);

        if ($this->getRequest()->isXmlHttpRequest()) {
            return false;
        } else {
            $this->flashMessages($import, $result);

            return $this->redirect()->toRoute('unicaen-db-import/import/voir', ['name' => $import->getName()]);
        }
    }

    /**
     * @return \Laminas\Http\Response
     * @return \Laminas\Http\Response|bool
     * @throws \Exception
     */
    public function lancerMultipleAction(): Response
    public function lancerMultipleAction()
    {
        $names = explode(',', $this->params('names', ''));

        foreach ($names as $name) {
            $import = $this->importService->getImportByName($name);
            $result = $this->importService->runImport($import);

            if (! $this->getRequest()->isXmlHttpRequest()) {
                $this->flashMessages($import, $result);
            }
        }

        if ($this->getRequest()->isXmlHttpRequest()) {
            return false;
        } else {
            $redirect = $this->params()->fromQuery('redirect') ?: $this->url()->fromRoute('unicaen-db-import/import');

            return $this->redirect()->toUrl($redirect);
        }
    }

    protected function flashMessages(ImportInterface $import, ImportResult $result)
    {
+9 −3
Changes for src/UnicaenDbImport/Controller/ImportControllerFactory.php: 9 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -4,21 +4,27 @@ namespace UnicaenDbImport\Controller;

use Psr\Container\ContainerInterface;
use UnicaenDbImport\Entity\Db\Service\ImportLog\ImportLogService;
use UnicaenDbImport\Log\LivelogLogger;
use UnicaenDbImport\Service\ImportService;

class ImportControllerFactory
{
    /**
     * @param \Laminas\ServiceManager\ServiceManager $container
     * @return \UnicaenDbImport\Controller\ImportController
     * @throws \Psr\Container\ContainerExceptionInterface
     * @throws \Psr\Container\NotFoundExceptionInterface
     */
    function __invoke(ContainerInterface $sl): ImportController
    function __invoke(ContainerInterface $container): ImportController
    {
        /** @var LivelogLogger $logger */
        $logger = $container->get(LivelogLogger::class);

        /** @var ImportService $importService */
        $importService = $sl->get(ImportService::class);
        $importService = $container->build(ImportService::class, ['logger' => $logger]);

        /** @var ImportLogService $importLogService */
        $importLogService = $sl->get(ImportLogService::class);
        $importLogService = $container->get(ImportLogService::class);

        $controller = new ImportController();
        $controller->setImportService($importService);
+16 −5
Changes for src/UnicaenDbImport/Controller/SynchroController.php: 16 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -2,7 +2,6 @@

namespace UnicaenDbImport\Controller;

use Laminas\Http\Response;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\JsonModel;
use UnicaenDbImport\Domain\Result;
@@ -97,15 +96,19 @@ class SynchroController extends AbstractActionController
    }

    /**
     * @return \Laminas\Http\Response
     * @return \Laminas\Http\Response|bool
     * @throws \Exception
     */
    public function lancerAction(): Response
    public function lancerAction()
    {
        $name = $this->params('name');
        $synchro = $this->synchroService->getSynchroByName($name);

        $result = $this->synchroService->runSynchro($synchro);

        if ($this->getRequest()->isXmlHttpRequest()) {
            return false;
        } else {
            $this->flashMessages($synchro, $result);

            $redirect = $this->params()->fromQuery('redirect') ?:
@@ -113,25 +116,33 @@ class SynchroController extends AbstractActionController

            return $this->redirect()->toUrl($redirect);
        }
    }

    /**
     * @return \Laminas\Http\Response
     * @return \Laminas\Http\Response|bool
     * @throws \Exception
     */
    public function lancerMultipleAction(): Response
    public function lancerMultipleAction()
    {
        $names = explode(',', $this->params('names', ''));

        foreach ($names as $name) {
            $synchro = $this->synchroService->getSynchroByName($name);
            $result = $this->synchroService->runSynchro($synchro);

            if (! $this->getRequest()->isXmlHttpRequest()) {
                $this->flashMessages($synchro, $result);
            }
        }

        if ($this->getRequest()->isXmlHttpRequest()) {
            return false;
        } else {
            $redirect = $this->params()->fromQuery('redirect') ?: $this->url()->fromRoute('unicaen-db-import/synchro');

            return $this->redirect()->toUrl($redirect);
        }
    }

    protected function flashMessages(SynchroInterface $import, SynchroResult $result)
    {
Loading