From f668837ec699f4fb11bf63b5d80f81619ec181a0 Mon Sep 17 00:00:00 2001 From: Ruslan Baidan Date: Mon, 18 Mar 2024 16:17:06 +0100 Subject: [PATCH] Removed useless anr validation across the controllers, fixed some services responses. --- config/module.config.php | 28 +++++++ src/Controller/ApiAnrAbstractController.php | 4 - src/Controller/ApiAnrInstancesController.php | 10 +-- .../ApiAnrRecordActorsController.php | 7 -- .../ApiAnrRecordPersonalDataController.php | 7 -- .../ApiAnrRecordProcessorsController.php | 7 -- src/Controller/ApiAnrRecordsController.php | 6 -- .../ApiAnrReferentialsController.php | 7 -- src/Controller/ApiAnrRisksController.php | 4 +- .../ApiAnrScalesCommentsController.php | 2 +- .../ApiDashboardAnrRisksController.php | 4 +- src/Controller/ApiSoaController.php | 4 +- .../Controller/ApiAnrExportController.php | 2 +- .../ApiAnrInstancesExportController.php | 2 +- .../ApiAnrObjectsExportController.php | 2 +- src/Export/Service/AmvExportService.php | 2 +- src/Export/Service/AnrExportService.php | 2 +- .../Service/AnrInstanceExportService.php | 76 +++++++++---------- src/Export/Service/AnrObjectExportService.php | 29 +++++-- src/Export/Service/AssetExportService.php | 4 +- .../OperationalRiskScalesExportService.php | 2 +- .../Service/SoaScaleCommentExportService.php | 4 +- src/Import/Command/ImportAnalysesCommand.php | 4 +- .../ApiAnrInstancesImportController.php | 4 +- src/Import/Helper/ImportCacheHelper.php | 2 +- src/Import/Service/AssetImportService.php | 31 ++++---- src/Import/Service/InstanceImportService.php | 68 ++++++++--------- src/Import/Service/ObjectImportService.php | 8 +- src/Service/AnrRecordActorService.php | 2 +- src/Service/AnrRecordDataCategoryService.php | 6 +- src/Service/AnrRecordProcessorService.php | 2 +- src/Service/AnrRecordRecipientService.php | 2 +- src/Service/AnrService.php | 29 +++++++ src/Service/SoaScaleCommentService.php | 5 +- 34 files changed, 206 insertions(+), 172 deletions(-) diff --git a/config/module.config.php b/config/module.config.php index a2043f32..7846343b 100755 --- a/config/module.config.php +++ b/config/module.config.php @@ -19,6 +19,7 @@ use Monarc\Core\Service\Helper\ScalesCacheHelper; use Monarc\Core\Storage\Authentication as StorageAuthentication; use Monarc\Core\Table\Factory\ClientEntityManagerFactory; +use Monarc\Core\Validator\InputValidator as CoreInputValidator; use Monarc\FrontOffice\Controller; use Monarc\FrontOffice\CronTask; use Monarc\FrontOffice\Export; @@ -1648,6 +1649,33 @@ ReflectionBasedAbstractFactory::class, InputValidator\InstanceRiskOp\UpdateInstanceRiskOpDataInputValidator::class => ReflectionBasedAbstractFactory::class, + CoreInputValidator\Asset\PostAssetDataInputValidator::class => static function ( + Containerinterface $container + ) { + return new CoreInputValidator\Asset\PostAssetDataInputValidator( + $container->get('config'), + $container->get(CoreInputValidator\InputValidationTranslator::class), + $container->get(Table\AssetTable::class) + ); + }, + CoreInputValidator\Threat\PostThreatDataInputValidator::class => static function ( + Containerinterface $container + ) { + return new CoreInputValidator\Threat\PostThreatDataInputValidator( + $container->get('config'), + $container->get(CoreInputValidator\InputValidationTranslator::class), + $container->get(Table\ThreatTable::class) + ); + }, + CoreInputValidator\Vulnerability\PostVulnerabilityDataInputValidator::class => static function ( + Containerinterface $container + ) { + return new CoreInputValidator\Vulnerability\PostVulnerabilityDataInputValidator( + $container->get('config'), + $container->get(CoreInputValidator\InputValidationTranslator::class), + $container->get(Table\VulnerabilityTable::class) + ); + }, // Commands Import\Command\ImportAnalysesCommand::class => static function ( diff --git a/src/Controller/ApiAnrAbstractController.php b/src/Controller/ApiAnrAbstractController.php index 673cf19d..43af1545 100755 --- a/src/Controller/ApiAnrAbstractController.php +++ b/src/Controller/ApiAnrAbstractController.php @@ -75,10 +75,6 @@ public function get($id) $entity = $this->getService()->getEntity($identifier); - if (!$entity['anr'] || $entity['anr']->get('id') !== $anrId) { - throw new Exception('Anr ids diffence', 412); - } - if (count($this->dependencies)) { $this->formatDependencies($entity, $this->dependencies); } diff --git a/src/Controller/ApiAnrInstancesController.php b/src/Controller/ApiAnrInstancesController.php index 47ff5aa8..14daee82 100755 --- a/src/Controller/ApiAnrInstancesController.php +++ b/src/Controller/ApiAnrInstancesController.php @@ -51,17 +51,17 @@ public function get($id) if ($this->params()->fromQuery('csv', false)) { return $this->setCsvResponse( - $this->anrInstanceRiskOpService->getOperationalRisksInCsv($anr, $id, $this->parseParams()) + $this->anrInstanceRiskOpService->getOperationalRisksInCsv($anr, (int)$id, $this->parseParams()) ); } if ($this->params()->fromQuery('csvInfoInst', false)) { return $this->setCsvResponse( - $this->anrInstanceRiskService->getInstanceRisksInCsv($anr, $id, $this->parseParams()) + $this->anrInstanceRiskService->getInstanceRisksInCsv($anr, (int)$id, $this->parseParams()) ); } - $instanceData = $this->anrInstanceService->getInstanceData($anr, $id); + $instanceData = $this->anrInstanceService->getInstanceData($anr, (int)$id); return $this->getPreparedJsonResponse($instanceData); } @@ -138,8 +138,8 @@ private function parseParams(): array 'order' => $params->fromQuery('order', 'maxRisk'), 'order_direction' => $params->fromQuery('order_direction', 'desc'), 'thresholds' => $params->fromQuery('thresholds'), - 'page' => $params->fromQuery('page', 1), - 'limit' => $params->fromQuery('limit', 0), + 'page' => (int)$params->fromQuery('page', 1), + 'limit' => (int)$params->fromQuery('limit', 0), ]; } diff --git a/src/Controller/ApiAnrRecordActorsController.php b/src/Controller/ApiAnrRecordActorsController.php index 73d4983b..37590f1a 100644 --- a/src/Controller/ApiAnrRecordActorsController.php +++ b/src/Controller/ApiAnrRecordActorsController.php @@ -25,13 +25,6 @@ public function get($id) $anrId = (int)$this->params()->fromRoute('anrid'); $entity = $this->getService()->getEntity(['anr' => $anrId, 'id' => $id]); - if (empty($anrId)) { - throw new Exception('Anr id missing', 412); - } - if (!$entity['anr'] || $entity['anr']->get('id') != $anrId) { - throw new Exception('Anr ids are different', 412); - } - if (count($this->dependencies)) { $this->formatDependencies($entity, $this->dependencies); } diff --git a/src/Controller/ApiAnrRecordPersonalDataController.php b/src/Controller/ApiAnrRecordPersonalDataController.php index 964bdf40..3080e954 100644 --- a/src/Controller/ApiAnrRecordPersonalDataController.php +++ b/src/Controller/ApiAnrRecordPersonalDataController.php @@ -50,13 +50,6 @@ public function get($id) $anrId = (int)$this->params()->fromRoute('anrid'); $entity = $this->getService()->getEntity(['anr' => $anrId, 'id' => $id]); - if (empty($anrId)) { - throw new Exception('Anr id missing', 412); - } - if (!$entity['anr'] || $entity['anr']->get('id') != $anrId) { - throw new Exception('Anr ids are different', 412); - } - $this->formatDependencies($entity, $this->dependencies); return $this->getPreparedJsonResponse($entity); diff --git a/src/Controller/ApiAnrRecordProcessorsController.php b/src/Controller/ApiAnrRecordProcessorsController.php index a0d90b37..c1ad23a1 100644 --- a/src/Controller/ApiAnrRecordProcessorsController.php +++ b/src/Controller/ApiAnrRecordProcessorsController.php @@ -25,13 +25,6 @@ public function get($id) $anrId = (int)$this->params()->fromRoute('anrid'); $entity = $this->getService()->getEntity(['anr' => $anrId, 'id' => $id]); - if (empty($anrId)) { - throw new Exception('Anr id missing', 412); - } - if (!$entity['anr'] || $entity['anr']->get('id') != $anrId) { - throw new Exception('Anr ids are different', 412); - } - $this->formatDependencies($entity, $this->dependencies); return $this->getPreparedJsonResponse($entity); diff --git a/src/Controller/ApiAnrRecordsController.php b/src/Controller/ApiAnrRecordsController.php index eadaca44..e827378d 100644 --- a/src/Controller/ApiAnrRecordsController.php +++ b/src/Controller/ApiAnrRecordsController.php @@ -72,12 +72,6 @@ public function get($id) $anrId = (int)$this->params()->fromRoute('anrid'); $entity = $this->getService()->getEntity(['id' => $id]); - if (empty($anrId)) { - throw new Exception('Anr id missing', 412); - } - if (!$entity['anr'] || $entity['anr']->get('id') !== $anrId) { - throw new Exception('Anr ids are different', 412); - } $this->formatDependencies($entity, $this->dependencies); diff --git a/src/Controller/ApiAnrReferentialsController.php b/src/Controller/ApiAnrReferentialsController.php index 30faee1a..8c44f1bf 100644 --- a/src/Controller/ApiAnrReferentialsController.php +++ b/src/Controller/ApiAnrReferentialsController.php @@ -49,13 +49,6 @@ public function get($id) $anrId = (int)$this->params()->fromRoute('anrid'); $entity = $this->getService()->getEntity(['anr' => $anrId, 'uuid' => $id]); - if (empty($anrId)) { - throw new Exception('Anr id missing', 412); - } - if (!$entity['anr'] || $entity['anr']->get('id') != $anrId) { - throw new Exception('Anr ids diffence', 412); - } - $this->formatDependencies($entity, $this->dependencies); return $this->getPreparedJsonResponse($entity); diff --git a/src/Controller/ApiAnrRisksController.php b/src/Controller/ApiAnrRisksController.php index e357e64b..802d540b 100755 --- a/src/Controller/ApiAnrRisksController.php +++ b/src/Controller/ApiAnrRisksController.php @@ -73,8 +73,8 @@ protected function prepareParams(): array 'order' => $params->fromQuery('order', 'maxRisk'), 'order_direction' => $params->fromQuery('order_direction', 'desc'), 'thresholds' => $params->fromQuery('thresholds'), - 'page' => $params->fromQuery('page', 1), - 'limit' => $params->fromQuery('limit', 50), + 'page' => (int)$params->fromQuery('page', 1), + 'limit' => (int)$params->fromQuery('limit', 50), 'amvs' => $params->fromQuery('amvs') ]; } diff --git a/src/Controller/ApiAnrScalesCommentsController.php b/src/Controller/ApiAnrScalesCommentsController.php index ae2fe6a5..03a3cf9d 100755 --- a/src/Controller/ApiAnrScalesCommentsController.php +++ b/src/Controller/ApiAnrScalesCommentsController.php @@ -26,7 +26,7 @@ public function __construct( public function getList() { $formattedParams = $this->getFormattedInputParams($this->getScaleCommentsInputFormatter); - $formattedParams->setFilterValueFor('scale', (int)$this->params()->fromRoute('scaleId')); + $formattedParams->setFilterValueFor('scale', (int)$this->params()->fromRoute('scaleid')); $comments = $this->anrScaleCommentService->getList($formattedParams); diff --git a/src/Controller/ApiDashboardAnrRisksController.php b/src/Controller/ApiDashboardAnrRisksController.php index 7e26d832..bc596683 100644 --- a/src/Controller/ApiDashboardAnrRisksController.php +++ b/src/Controller/ApiDashboardAnrRisksController.php @@ -51,8 +51,8 @@ private function getParsedParams(): array 'order' => $this->params()->fromQuery('order', 'maxRisk'), 'order_direction' => $this->params()->fromQuery('order_direction', 'desc'), 'thresholds' => $this->params()->fromQuery('thresholds'), - 'page' => $this->params()->fromQuery('page', 1), - 'limit' => $this->params()->fromQuery('limit', 50) + 'page' => (int)$this->params()->fromQuery('page', 1), + 'limit' => (int)$this->params()->fromQuery('limit', 50) ]; } } diff --git a/src/Controller/ApiSoaController.php b/src/Controller/ApiSoaController.php index abd6c383..000e70a9 100755 --- a/src/Controller/ApiSoaController.php +++ b/src/Controller/ApiSoaController.php @@ -152,8 +152,8 @@ public function get($id) $soaScaleCommentsData = $this->soaScaleCommentService->getSoaScaleCommentsData($anr); $entity['anr'] = [ - 'id' => $measure->getAnr()->getId(), - 'label' => $measure->getAnr()->getLabel(), + 'id' => $anr->getId(), + 'label' => $anr->getLabel(), ]; $entity['measure'] = $measure->getJsonArray(); $entity['measure']['category'] = $measure->getCategory()->getJsonArray(); diff --git a/src/Export/Controller/ApiAnrExportController.php b/src/Export/Controller/ApiAnrExportController.php index c6c65cb4..f85ea644 100755 --- a/src/Export/Controller/ApiAnrExportController.php +++ b/src/Export/Controller/ApiAnrExportController.php @@ -9,7 +9,7 @@ use Monarc\Core\Controller\Handler\AbstractRestfulControllerRequestHandler; use Monarc\FrontOffice\Export\Service\AnrExportService; -use Monarc\FrontOffice\Model\Entity\Anr; +use Monarc\FrontOffice\Entity\Anr; use function strlen; class ApiAnrExportController extends AbstractRestfulControllerRequestHandler diff --git a/src/Export/Controller/ApiAnrInstancesExportController.php b/src/Export/Controller/ApiAnrInstancesExportController.php index 58c306c2..4087e1b9 100755 --- a/src/Export/Controller/ApiAnrInstancesExportController.php +++ b/src/Export/Controller/ApiAnrInstancesExportController.php @@ -9,7 +9,7 @@ use Monarc\Core\Controller\Handler\AbstractRestfulControllerRequestHandler; use Monarc\FrontOffice\Export\Service\AnrInstanceExportService; -use Monarc\FrontOffice\Model\Entity\Anr; +use Monarc\FrontOffice\Entity\Anr; class ApiAnrInstancesExportController extends AbstractRestfulControllerRequestHandler { diff --git a/src/Export/Controller/ApiAnrObjectsExportController.php b/src/Export/Controller/ApiAnrObjectsExportController.php index f15df6f2..baa5b31b 100755 --- a/src/Export/Controller/ApiAnrObjectsExportController.php +++ b/src/Export/Controller/ApiAnrObjectsExportController.php @@ -9,7 +9,7 @@ use Monarc\Core\Controller\Handler\AbstractRestfulControllerRequestHandler; use Monarc\Core\Controller\Handler\ControllerRequestResponseHandlerTrait; -use Monarc\FrontOffice\Model\Entity\Anr; +use Monarc\FrontOffice\Entity\Anr; use Monarc\FrontOffice\Export\Service\AnrObjectExportService; class ApiAnrObjectsExportController extends AbstractRestfulControllerRequestHandler diff --git a/src/Export/Service/AmvExportService.php b/src/Export/Service/AmvExportService.php index a3e2ddbf..d7059721 100644 --- a/src/Export/Service/AmvExportService.php +++ b/src/Export/Service/AmvExportService.php @@ -7,7 +7,7 @@ namespace Monarc\FrontOffice\Export\Service; -use Monarc\FrontOffice\Model\Entity; +use Monarc\FrontOffice\Entity; class AmvExportService { diff --git a/src/Export/Service/AnrExportService.php b/src/Export/Service/AnrExportService.php index 524aece4..b5859e7c 100644 --- a/src/Export/Service/AnrExportService.php +++ b/src/Export/Service/AnrExportService.php @@ -7,7 +7,7 @@ namespace Monarc\FrontOffice\Export\Service; -use Monarc\FrontOffice\Model\Entity; +use Monarc\FrontOffice\Entity; use Monarc\FrontOffice\Model\Table as DeprecatedTable; use Monarc\FrontOffice\Table; diff --git a/src/Export/Service/AnrInstanceExportService.php b/src/Export/Service/AnrInstanceExportService.php index 4acd373c..6de544a2 100644 --- a/src/Export/Service/AnrInstanceExportService.php +++ b/src/Export/Service/AnrInstanceExportService.php @@ -8,8 +8,8 @@ namespace Monarc\FrontOffice\Export\Service; use Monarc\Core\Helper\EncryptDecryptHelperTrait; -use Monarc\FrontOffice\Model\Entity\Instance; -use Monarc\FrontOffice\Model\Entity\RecommandationRisk; +use Monarc\FrontOffice\Entity\Instance; +use Monarc\FrontOffice\Entity\RecommendationRisk; use Monarc\FrontOffice\Service\Export\ObjectExportService; use Monarc\FrontOffice\Export\Service\OperationalRiskScalesExportService; @@ -56,6 +56,7 @@ public function export($data): array return $exportedInstance; } + //TODO: $id => Instance $instance and so on public function generateExportArray( $id, &$filename = "", @@ -213,11 +214,11 @@ public function generateExportArray( $instanceRisk->set('riskC', -1); $instanceRisk->set('riskI', -1); $instanceRisk->set('riskD', -1); - $return['risks'][$instanceRisk->get('id')] = $instanceRisk->getJsonArray($instanceRiskArray); + $return['risks'][$instanceRisk->getId()] = $instanceRisk->getJsonArray($instanceRiskArray); $irAmv = $instanceRisk->get('amv'); - $return['risks'][$instanceRisk->get('id')]['amv'] = is_null($irAmv) ? null : $irAmv->getUuid(); - if (!empty($return['risks'][$instanceRisk->get('id')]['amv']) + $return['risks'][$instanceRisk->getId()]['amv'] = is_null($irAmv) ? null : $irAmv->getUuid(); + if (!empty($return['risks'][$instanceRisk->getId()]['amv']) && empty($return['amvs'][$instanceRisk->getAmv()->getUuid()]) ) { [$amv, $threats, $vulns, $themes, $measures] = $this->amvExportService->generateExportArray( @@ -247,9 +248,9 @@ public function generateExportArray( $return['threats'][$instanceRisk->getThreat()->getUuid()] = $instanceRisk->get('threat')->getJsonArray($treatsObj); } - $return['risks'][$instanceRisk->get('id')]['threat'] = $instanceRisk->getThreat()->getUuid(); + $return['risks'][$instanceRisk->getId()]['threat'] = $instanceRisk->getThreat()->getUuid(); } else { - $return['risks'][$instanceRisk->get('id')]['threat'] = null; + $return['risks'][$instanceRisk->getId()]['threat'] = null; } $vulnerability = $instanceRisk->get('vulnerability'); @@ -259,10 +260,10 @@ public function generateExportArray( $return['vuls'][$instanceRisk->getVulnerability()->getUuid()] = $instanceRisk->get('vulnerability')->getJsonArray($vulsObj); } - $return['risks'][$instanceRisk->get('id')]['vulnerability'] = + $return['risks'][$instanceRisk->getId()]['vulnerability'] = $instanceRisk->getVulnerability()->getUuid(); } else { - $return['risks'][$instanceRisk->get('id')]['vulnerability'] = null; + $return['risks'][$instanceRisk->getId()]['vulnerability'] = null; } $return['risks'][$instanceRisk->getId()]['context'] = $instanceRisk->getContext(); @@ -308,26 +309,26 @@ public function generateExportArray( $instanceConseqResults = $instanceConseqTable->getRepository() ->createQueryBuilder('t') ->where("t.instance = :i") - ->setParameter(':i', $instance->get('id'))->getQuery()->getResult(); + ->setParameter(':i', $instance->getId())->getQuery()->getResult(); foreach ($instanceConseqResults as $ic) { - $return['consequences'][$ic->get('id')] = $ic->getJsonArray($instanceConseqArray); - $return['consequences'][$ic->get('id')]['scaleImpactType'] = + $return['consequences'][$ic->getId()] = $ic->getJsonArray($instanceConseqArray); + $return['consequences'][$ic->getId()]['scaleImpactType'] = $ic->get('scaleImpactType')->getJsonArray($scaleTypeArray); - $return['consequences'][$ic->get('id')]['scaleImpactType']['scale'] = - $ic->get('scaleImpactType')->get('scale')->get('id'); + $return['consequences'][$ic->getId()]['scaleImpactType']['scale'] = + $ic->get('scaleImpactType')->getScale()->getId(); } } - /** @var InstanceSuperClass[] $childrenInstances */ + /** @var Instance[] $childrenInstances */ $childrenInstances = $this->instanceTable->getRepository() ->createQueryBuilder('t') ->where('t.parent = :p') - ->setParameter(':p', $instance->get('id')) + ->setParameter(':p', $instance->getId()) ->orderBy('t.position', 'ASC')->getQuery()->getResult(); $return['children'] = []; $f = ''; foreach ($childrenInstances as $i) { - $return['children'][$i->get('id')] = $this->generateExportArray( + $return['children'][$i->getId()] = $this->generateExportArray( $i->getId(), $f, $withEval, @@ -456,10 +457,7 @@ protected function generateExportArrayOfRecommendations( foreach ($recommendationsSets as $recommendationSet) { $result['recSets'][$recommendationSet->getUuid()] = [ 'uuid' => $recommendationSet->getUuid(), - 'label1' => $recommendationSet->getLabel(1), - 'label2' => $recommendationSet->getLabel(2), - 'label3' => $recommendationSet->getLabel(3), - 'label4' => $recommendationSet->getLabel(4), + 'label' => $recommendationSet->getLabel(), ]; } } @@ -468,7 +466,7 @@ protected function generateExportArrayOfRecommendations( if ($withEval && $withRecommendations && !empty($riskIds)) { $recosObj = [ 'uuid' => 'uuid', - 'recommandationSet' => 'recommandationSet', + 'recommendationSet' => 'recommendationSet', 'code' => 'code', 'description' => 'description', 'importance' => 'importance', @@ -482,24 +480,26 @@ protected function generateExportArrayOfRecommendations( if (!$withUnlinkedRecommendations) { $result['recs'] = []; } - /** @var RecommandationRisk[] $recoRisk */ + + // TODO: can't work... + /** @var RecommendationRisk[] $recoRisk */ $recoRisk = $this->recommendationRiskTable->getEntityByFields( ['anr' => $instance->getAnr()->getId(), 'instanceRisk' => $riskIds], ['id' => 'ASC'] ); foreach ($recoRisk as $rr) { - $recommendation = $rr->getRecommandation(); + $recommendation = $rr->getRecommendation(); if ($recommendation !== null) { $recommendationUuid = $recommendation->getUuid(); $instanceRiskId = $rr->getInstanceRisk()->getId(); $result['recos'][$instanceRiskId][$recommendationUuid] = $recommendation->getJsonArray($recosObj); - $result['recos'][$instanceRiskId][$recommendationUuid]['recommandationSet'] = - $recommendation->getRecommandationSet()->getUuid(); + $result['recos'][$instanceRiskId][$recommendationUuid]['recommendationSet'] = + $recommendation->getRecommendationSet()->getUuid(); $result['recos'][$instanceRiskId][$recommendationUuid]['commentAfter'] = $rr->getCommentAfter(); if (!$withUnlinkedRecommendations && !isset($recoIds[$recommendationUuid])) { $result['recs'][$recommendationUuid] = $recommendation->getJsonArray($recosObj); - $result['recs'][$recommendationUuid]['recommandationSet'] = - $recommendation->getRecommandationSet()->getUuid(); + $result['recs'][$recommendationUuid]['recommendationSet'] = + $recommendation->getRecommendationSet()->getUuid(); } $recoIds[$recommendationUuid] = $recommendationUuid; } @@ -509,7 +509,7 @@ protected function generateExportArrayOfRecommendations( if ($withEval && $withRecommendations && !empty($riskOpIds)) { $recosObj = [ 'uuid' => 'uuid', - 'recommandationSet' => 'recommandationSet', + 'recommendationSet' => 'recommendationSet', 'code' => 'code', 'description' => 'description', 'importance' => 'importance', @@ -528,31 +528,31 @@ protected function generateExportArrayOfRecommendations( ['id' => 'ASC'] ); foreach ($recoRisk as $rr) { - $recommendation = $rr->getRecommandation(); + $recommendation = $rr->getRecommendation(); if ($recommendation !== null) { $instanceRiskOpId = $rr->getInstanceRiskOp()->getId(); $recommendationUuid = $recommendation->getUuid(); $result['recosop'][$instanceRiskOpId][$recommendationUuid] = $recommendation->getJsonArray($recosObj); - $result['recosop'][$instanceRiskOpId][$recommendationUuid]['recommandationSet'] = - $recommendation->getRecommandationSet()->getUuid(); + $result['recosop'][$instanceRiskOpId][$recommendationUuid]['recommendationSet'] = + $recommendation->getRecommendationSet()->getUuid(); $result['recosop'][$instanceRiskOpId][$recommendationUuid]['commentAfter'] = $rr->getCommentAfter(); if (!$withUnlinkedRecommendations && !isset($recoIds[$recommendationUuid])) { $result['recs'][$recommendationUuid] = $recommendation->getJsonArray($recosObj); - $result['recs'][$recommendationUuid]['recommandationSet'] = - $recommendation->getRecommandationSet()->getUuid(); + $result['recs'][$recommendationUuid]['recommendationSet'] = + $recommendation->getRecommendationSet()->getUuid(); } $recoIds[$recommendationUuid] = $recommendationUuid; } } } - // Recommendation unlinked to recommandations-risks + // Recommendation unlinked to recommendations-risks if ($withUnlinkedRecommendations && $withEval && $withRecommendations) { $recosObj = [ 'uuid' => 'uuid', - 'recommandationSet' => 'recommandationSet', + 'recommendationSet' => 'recommendationSet', 'code' => 'code', 'description' => 'description', 'importance' => 'importance', @@ -567,8 +567,8 @@ protected function generateExportArrayOfRecommendations( foreach ($recommendations as $recommendation) { if (!isset($recoIds[$recommendation->getUuid()])) { $result['recs'][$recommendation->getUuid()] = $recommendation->getJsonArray($recosObj); - $result['recs'][$recommendation->getUuid()]['recommandationSet'] = - $recommendation->getRecommandationSet()->getUuid(); + $result['recs'][$recommendation->getUuid()]['recommendationSet'] = + $recommendation->getRecommendationSet()->getUuid(); $recoIds[$recommendation->getUuid()] = $recommendation->getUuid(); } } diff --git a/src/Export/Service/AnrObjectExportService.php b/src/Export/Service/AnrObjectExportService.php index d4bcfe6a..cd3a31b5 100644 --- a/src/Export/Service/AnrObjectExportService.php +++ b/src/Export/Service/AnrObjectExportService.php @@ -7,14 +7,13 @@ namespace Monarc\FrontOffice\Export\Service; -use Monarc\Core\Exception\Exception; -use Monarc\Core\Model\Entity\ObjectCategorySuperClass; +use Monarc\Core\Entity\ObjectCategorySuperClass; use Monarc\Core\Service\ConfigService; -use Monarc\FrontOffice\Model\Entity\Anr; -use Monarc\FrontOffice\Model\Entity\MonarcObject; +use Monarc\FrontOffice\Entity\Anr; +use Monarc\FrontOffice\Entity\MonarcObject; use Monarc\FrontOffice\Table\MonarcObjectTable; -class ObjectExportService +class AnrObjectExportService { private MonarcObjectTable $monarcObjectTable; @@ -32,6 +31,26 @@ public function __construct( $this->configService = $configService; } + public function export(Anr $anr, array $data) + { + $isForMosp = !empty($data['mosp']); + + $prepareObjectData = json_encode( + $isForMosp + ? $this->generateExportMospArray($data['id'], $anr) + : $this->generateExportArray($data['id'], $anr) + ); + + // TODO ... + $data['filename'] = $this->generateExportFileName($data['id'], $anr, $isForMosp); + + if (!empty($data['password'])) { + $prepareObjectData = $this->encrypt($prepareObjectData, $data['password']); + } + + return $prepareObjectData; + } + public function generateExportArray(string $uuid, Anr $anr, bool $withEval = false) { /** @var MonarcObject $monarcObject */ diff --git a/src/Export/Service/AssetExportService.php b/src/Export/Service/AssetExportService.php index cb040b98..8b21ff11 100644 --- a/src/Export/Service/AssetExportService.php +++ b/src/Export/Service/AssetExportService.php @@ -7,10 +7,10 @@ namespace Monarc\FrontOffice\Export\Service; -use Monarc\Core\Model\Entity\AnrSuperClass; +use Monarc\Core\Entity\AnrSuperClass; use Monarc\Core\Service\ConnectedUserService; use Monarc\Core\Table\AssetTable; -use Monarc\FrontOffice\Model\Entity\Anr; +use Monarc\FrontOffice\Entity\Anr; class AssetExportService { diff --git a/src/Export/Service/OperationalRiskScalesExportService.php b/src/Export/Service/OperationalRiskScalesExportService.php index f17ababb..e6c130ad 100644 --- a/src/Export/Service/OperationalRiskScalesExportService.php +++ b/src/Export/Service/OperationalRiskScalesExportService.php @@ -7,7 +7,7 @@ namespace Monarc\FrontOffice\Export\Service; -use Monarc\FrontOffice\Model\Entity; +use Monarc\FrontOffice\Entity; use Monarc\FrontOffice\Table\OperationalRiskScaleTable; class OperationalRiskScalesExportService diff --git a/src/Export/Service/SoaScaleCommentExportService.php b/src/Export/Service/SoaScaleCommentExportService.php index 7df83913..6ac1a13c 100644 --- a/src/Export/Service/SoaScaleCommentExportService.php +++ b/src/Export/Service/SoaScaleCommentExportService.php @@ -7,8 +7,8 @@ namespace Monarc\FrontOffice\Export\Service; -use Monarc\FrontOffice\Model\Entity\Anr; -use Monarc\FrontOffice\Model\Entity\SoaScaleComment; +use Monarc\FrontOffice\Entity\Anr; +use Monarc\FrontOffice\Entity\SoaScaleComment; use Monarc\FrontOffice\Table\SoaScaleCommentTable; class SoaScaleCommentExportService diff --git a/src/Import/Command/ImportAnalysesCommand.php b/src/Import/Command/ImportAnalysesCommand.php index 8753e7e1..a8fc805a 100755 --- a/src/Import/Command/ImportAnalysesCommand.php +++ b/src/Import/Command/ImportAnalysesCommand.php @@ -7,10 +7,10 @@ namespace Monarc\FrontOffice\Import\Command; -use Monarc\Core\Model\Entity\AnrSuperClass; +use Monarc\Core\Entity\AnrSuperClass; use Monarc\FrontOffice\CronTask\Service\CronTaskService; use Monarc\FrontOffice\Import\Service\InstanceImportService; -use Monarc\FrontOffice\Model\Entity\CronTask; +use Monarc\FrontOffice\Entity\CronTask; use Monarc\FrontOffice\Table\AnrTable; use Monarc\FrontOffice\Service\SnapshotService; use Symfony\Component\Console\Command\Command; diff --git a/src/Import/Controller/ApiAnrInstancesImportController.php b/src/Import/Controller/ApiAnrInstancesImportController.php index 82bcd150..98fa2df9 100755 --- a/src/Import/Controller/ApiAnrInstancesImportController.php +++ b/src/Import/Controller/ApiAnrInstancesImportController.php @@ -11,11 +11,11 @@ use Laminas\View\Model\JsonModel; use Monarc\Core\Exception\Exception; use Monarc\Core\Helper\FileUploadHelperTrait; -use Monarc\Core\Model\Entity\AnrSuperClass; +use Monarc\Core\Entity\AnrSuperClass; use Monarc\Core\Service\ConfigService; use Monarc\FrontOffice\CronTask\Service\CronTaskService; use Monarc\FrontOffice\Import\Service\InstanceImportService; -use Monarc\FrontOffice\Model\Entity\CronTask; +use Monarc\FrontOffice\Entity\CronTask; use Monarc\FrontOffice\Table\AnrTable; class ApiAnrInstancesImportController extends AbstractRestfulController diff --git a/src/Import/Helper/ImportCacheHelper.php b/src/Import/Helper/ImportCacheHelper.php index c2925ef6..398e30a6 100644 --- a/src/Import/Helper/ImportCacheHelper.php +++ b/src/Import/Helper/ImportCacheHelper.php @@ -7,7 +7,7 @@ namespace Monarc\FrontOffice\Import\Helper; -use Monarc\FrontOffice\Model\Entity\Anr; +use Monarc\FrontOffice\Entity\Anr; use Monarc\FrontOffice\Model\Table\SoaCategoryTable; use Monarc\FrontOffice\Table\ThemeTable; diff --git a/src/Import/Service/AssetImportService.php b/src/Import/Service/AssetImportService.php index b8688ba8..61cab260 100644 --- a/src/Import/Service/AssetImportService.php +++ b/src/Import/Service/AssetImportService.php @@ -8,18 +8,18 @@ namespace Monarc\FrontOffice\Import\Service; use Monarc\Core\Exception\Exception; -use Monarc\Core\Model\Entity\UserSuperClass; +use Monarc\Core\Entity\UserSuperClass; use Monarc\Core\Service\ConnectedUserService; use Monarc\FrontOffice\Import\Helper\ImportCacheHelper; -use Monarc\FrontOffice\Model\Entity\Amv; -use Monarc\FrontOffice\Model\Entity\Anr; -use Monarc\FrontOffice\Model\Entity\Asset; -use Monarc\FrontOffice\Model\Entity\InstanceRisk; -use Monarc\FrontOffice\Model\Entity\Measure; -use Monarc\FrontOffice\Model\Entity\Referential; -use Monarc\FrontOffice\Model\Entity\Theme; -use Monarc\FrontOffice\Model\Entity\Threat; -use Monarc\FrontOffice\Model\Entity\Vulnerability; +use Monarc\FrontOffice\Entity\Amv; +use Monarc\FrontOffice\Entity\Anr; +use Monarc\FrontOffice\Entity\Asset; +use Monarc\FrontOffice\Entity\InstanceRisk; +use Monarc\FrontOffice\Entity\Measure; +use Monarc\FrontOffice\Entity\Referential; +use Monarc\FrontOffice\Entity\Theme; +use Monarc\FrontOffice\Entity\Threat; +use Monarc\FrontOffice\Entity\Vulnerability; use Monarc\FrontOffice\Service\AnrAssetService; use Monarc\FrontOffice\Service\AnrThemeService; use Monarc\FrontOffice\Service\AnrThreatService; @@ -224,7 +224,6 @@ private function processVulnerabilitiesData(array $vulnerabilitiesData, Anr $anr // TODO: use services to create the objects. private function processAmvsData(array $amvsData, Anr $anr, Asset $asset): void { - $instances = null; foreach ($amvsData as $amvUuid => $amvData) { /** @var Amv|null $amv */ $amv = $this->amvTable->findByUuidAndAnr($amvUuid, $anr, false); @@ -250,10 +249,7 @@ private function processAmvsData(array $amvsData, Anr $anr, Asset $asset): void $this->amvTable->save($amv, false); - if ($instances === null) { - $instances = $this->instanceTable->findByAnrAndAsset($anr, $asset); - } - foreach ($instances as $instance) { + foreach ($asset->getInstances() as $instance) { $instanceRisk = (new InstanceRisk()) ->setAnr($anr) ->setAmv($amv) @@ -272,9 +268,10 @@ private function processAmvsData(array $amvsData, Anr $anr, Asset $asset): void } } + // TODO: perhaps we can do this before the previous foreach or find another solution. foreach ($this->amvTable->findByAnrAndAsset($anr, $asset) as $oldAmv) { if (!isset($amvsData[$oldAmv->getUuid()])) { - /** Set related instance risks to specific and delete the amvs leter */ + /** Set related instance risks to specific and delete the amvs later. */ $instanceRisks = $oldAmv->getInstanceRisks(); // TODO: remove the double iteration when #240 is done. @@ -300,7 +297,7 @@ private function processAmvsData(array $amvsData, Anr $anr, Asset $asset): void } if (!empty($amvsToDelete)) { - $this->amvTable->deleteEntities($amvsToDelete); + $this->amvTable->removeList($amvsToDelete); } } diff --git a/src/Import/Service/InstanceImportService.php b/src/Import/Service/InstanceImportService.php index dcd5e832..f311006f 100755 --- a/src/Import/Service/InstanceImportService.php +++ b/src/Import/Service/InstanceImportService.php @@ -11,12 +11,12 @@ use Doctrine\Common\Collections\ArrayCollection; use Doctrine\ORM; use Monarc\Core\Exception\Exception; -use Monarc\Core\Model\Entity as CoreEntity; +use Monarc\Core\Entity as CoreEntity; use Monarc\Core\Service\ConfigService; use Monarc\Core\Service\ConnectedUserService; use Monarc\Core\Helper\EncryptDecryptHelperTrait; use Monarc\FrontOffice\Import\Helper\ImportCacheHelper; -use Monarc\FrontOffice\Model\Entity; +use Monarc\FrontOffice\Entity; use Monarc\FrontOffice\Table; use Monarc\FrontOffice\Model\Table as DeprecatedTable; use Monarc\FrontOffice\Service; @@ -511,7 +511,6 @@ private function importAnrFromArray( $referential = $this->importCacheHelper ->getItemFromArrayCache('referentials', $measureData['referential']); if ($measure === null && $referential !== null) { - /** @var SoaCategory|null $soaCategory */ $soaCategory = $this->soaCategoryService->getOrCreateSoaCategory( $this->importCacheHelper, $anr, @@ -519,25 +518,23 @@ private function importAnrFromArray( $measureData['category'] ); - $measure = (new Measure($measureData)) + $measure = (new Entity\Measure()) ->setUuid($measureUuid) ->setAnr($anr) + ->setLabels($measureData) + ->setCode($measureData['code']) + ->setStatus((int)$measureData['status']) ->setReferential($referential) ->setCategory($soaCategory) - ->setAmvs(new ArrayCollection()) // need to initialize the amvs link - ->setRolfRisks(new ArrayCollection()) ->setCreator($this->connectedUser->getEmail()); - $this->measureTable->saveEntity($measure, false); $this->importCacheHelper->addItemToArrayCache('measures', $measure, $measureUuid); if (!isset($data['soas'])) { - // if no SOAs in the analysis to import, create new ones - $newSoa = (new Soa()) + $newSoa = (new Entity\Soa()) ->setAnr($anr) ->setMeasure($measure); - $this->soaTable->saveEntity($newSoa, false); } } @@ -548,20 +545,26 @@ private function importAnrFromArray( // import the measuresmeasures if (isset($data['measuresMeasures'])) { foreach ($data['measuresMeasures'] as $measureMeasureData) { - $measuresMeasures = $this->measureMeasureTable->findByAnrFatherUuidAndChildUuid( + if (!$this->measureMeasureTable->existsWithAnrFatherUuidAndChildUuid( $anr, $measureMeasureData['father'], $measureMeasureData['child'] - ); - if ($measuresMeasures === null) { - $measureMeasure = (new MeasureMeasure()) + )) { + $parentMeasure = $this->importCacheHelper + ->getItemFromArrayCache('measures', $measureMeasureData['father']); + $childMeasure = $this->importCacheHelper + ->getItemFromArrayCache('measures', $measureMeasureData['child']); + $measureMeasure = (new Entity\MeasureMeasure()) ->setAnr($anr) - ->setFather($measureMeasureData['father']) - ->setChild($measureMeasureData['child']); + ->setFather($parentMeasure) + ->setChild($childMeasure) + ->setCreator($this->connectedUser->getEmail()); $this->measureMeasureTable->saveEntity($measureMeasure, false); } } + + // TODO: avoid saving here. $this->measureMeasureTable->getDb()->flush(); } @@ -574,7 +577,7 @@ private function importAnrFromArray( $maxOrig = \count($data['soaScaleComment']) - 1; $this->mergeSoaScaleComment($data['soaScaleComment'], $anr); } elseif (!isset($data['soaScaleComment']) && isset($data['soas'])) { - //old import case + // old import case. TODO: move it to the Entity. $defaultSoaScaleCommentdatas = [ 'fr' => [ ['scaleIndex' => 0, 'colour' => '#FFFFFF', 'isHidden' => false, 'comment' => 'Inexistant'], @@ -1068,23 +1071,18 @@ private function prepareInstanceConsequences( foreach ($scalesImpactTypes as $scalesImpactType) { $localScalesImpactTypes[$scalesImpactType->getLabel($anr->getLanguage())] = $scalesImpactType; } - $scaleImpactTypeMaxPosition = $this->scaleImpactTypeTable->findMaxPositionByAnrAndScale( - $anr, - $localScaleImpact - ); foreach ($data['consequences'] as $consequenceData) { if (!isset($localScalesImpactTypes[$consequenceData['scaleImpactType'][$labelKey]])) { $scaleImpactTypeData = $consequenceData['scaleImpactType']; - $scaleImpactType = (new ScaleImpactType()) + $scaleImpactType = (new Entity\ScaleImpactType()) ->setType($scaleImpactTypeData['type']) ->setLabels($scaleImpactTypeData) ->setIsSys((bool)$scaleImpactTypeData['isSys']) ->setIsHidden((bool)$scaleImpactTypeData['isHidden']) ->setAnr($anr) ->setScale($localScaleImpact) - ->setPosition(++$scaleImpactTypeMaxPosition) ->setCreator($this->connectedUser->getEmail()); $this->scaleImpactTypeTable->save($scaleImpactType, false); @@ -1092,7 +1090,7 @@ private function prepareInstanceConsequences( $localScalesImpactTypes[$consequenceData['scaleImpactType'][$labelKey]] = $scaleImpactType; } - $instanceConsequence = (new InstanceConsequence()) + $instanceConsequence = (new Entity\InstanceConsequence()) ->setAnr($anr) ->setObject($monarcObject) ->setInstance($instance) @@ -1100,7 +1098,9 @@ private function prepareInstanceConsequences( ->setIsHidden((bool)$consequenceData['isHidden']) ->setCreator($this->connectedUser->getEmail()); - foreach (InstanceConsequence::getAvailableScalesCriteria() as $scaleCriteriaKey => $scaleCriteria) { + foreach (Entity\InstanceConsequence::getAvailableScalesCriteria() + as $scaleCriteriaKey => $scaleCriteria + ) { if ($instanceConsequence->isHidden()) { $value = -1; } else { @@ -2368,11 +2368,15 @@ private function getExternalOperationalRiskScalesData(Anr $anr, array $data): ar return $this->cachedData['externalOperationalRiskScalesData']; } - private function updateScalesAndComments(Anr $anr, array $data): void + private function updateScalesAndComments(Entity\Anr $anr, array $data): void { $scalesByType = []; $scales = $this->scaleTable->findByAnr($anr); - foreach ([Scale::TYPE_IMPACT, Scale::TYPE_THREAT, Scale::TYPE_VULNERABILITY] as $type) { + foreach ([ + CoreEntity\ScaleSuperClass::TYPE_IMPACT, + CoreEntity\ScaleSuperClass::TYPE_THREAT, + CoreEntity\ScaleSuperClass::TYPE_VULNERABILITY + ] as $type) { foreach ($scales as $scale) { if ($scale->getType() === $type) { $scale->setMin((int)$data['scales'][$type]['min']); @@ -2396,11 +2400,8 @@ private function updateScalesAndComments(Anr $anr, array $data): void } $this->scaleCommentTable->flush(); + // TODO: there is no position field anymore. $scaleImpactTypes = $this->scaleImpactTypeTable->findByAnrOrderedAndIndexedByPosition($anr); - $scaleImpactTypeMaxPosition = $this->scaleImpactTypeTable->findMaxPositionByAnrAndScale( - $anr, - $scalesByType[Scale::TYPE_IMPACT] - ); foreach ($data['scalesComments'] as $scalesCommentData) { /* * Comments, which are not matched with a scale impact type, should not be created. @@ -2414,7 +2415,7 @@ private function updateScalesAndComments(Anr $anr, array $data): void } $scale = $scalesByType[$scalesCommentData['scale']['type']]; - $scaleComment = (new ScaleComment()) + $scaleComment = (new Entity\ScaleComment()) ->setAnr($anr) ->setScale($scale) ->setScaleIndex($scalesCommentData['scaleIndex'] ?? $scalesCommentData['val']) @@ -2439,14 +2440,13 @@ private function updateScalesAndComments(Anr $anr, array $data): void !== $scalesCommentData['scaleImpactType']['labels']['label' . $anr->getLanguage()] ) ) { - $scaleImpactType = (new ScaleImpactType()) + $scaleImpactType = (new Entity\ScaleImpactType()) ->setType($scalesCommentData['scaleImpactType']['type']) ->setLabels($scalesCommentData['scaleImpactType']['labels']) ->setIsSys($scalesCommentData['scaleImpactType']['isSys']) ->setIsHidden($scalesCommentData['scaleImpactType']['isHidden']) ->setAnr($anr) ->setScale($scale) - ->setPosition(++$scaleImpactTypeMaxPosition) ->setCreator($this->connectedUser->getEmail()); $this->scaleImpactTypeTable->save($scaleImpactType, false); diff --git a/src/Import/Service/ObjectImportService.php b/src/Import/Service/ObjectImportService.php index 326fab53..5a7400a7 100644 --- a/src/Import/Service/ObjectImportService.php +++ b/src/Import/Service/ObjectImportService.php @@ -9,11 +9,11 @@ use Doctrine\ORM\EntityNotFoundException; use Monarc\Core\Exception\Exception; -use Monarc\Core\Model\Entity\ObjectSuperClass; -use Monarc\Core\Model\Entity\UserSuperClass; +use Monarc\Core\Entity\ObjectSuperClass; +use Monarc\Core\Entity\UserSuperClass; use Monarc\Core\Service\ConnectedUserService; use Monarc\FrontOffice\Import\Helper\ImportCacheHelper; -use Monarc\FrontOffice\Model\Entity; +use Monarc\FrontOffice\Entity; use Monarc\FrontOffice\Model\Table as DeprecatedTable; use Monarc\FrontOffice\Table; use Monarc\FrontOffice\Service\SoaCategoryService; @@ -382,7 +382,7 @@ private function processMeasuresAndReferentialData(Entity\Anr $anr, Entity\RolfR } if ($measure !== null) { - $measure->addOpRisk($rolfRisk); + $measure->addRolfRisk($rolfRisk); $this->measureTable->saveEntity($measure, false); } diff --git a/src/Service/AnrRecordActorService.php b/src/Service/AnrRecordActorService.php index 18d06303..828cf89f 100644 --- a/src/Service/AnrRecordActorService.php +++ b/src/Service/AnrRecordActorService.php @@ -87,7 +87,7 @@ public function importFromArray($data, $anr) try { $actorEntity = $this->get('table')->getEntityByFields(['label' => $data['label'], 'anr' => $anr]); if (count($actorEntity)) { - $id = $actorEntity[0]->get('id'); + $id = $actorEntity[0]->getId(); } else { $id = $this->create($data); } diff --git a/src/Service/AnrRecordDataCategoryService.php b/src/Service/AnrRecordDataCategoryService.php index e5907866..50474d20 100644 --- a/src/Service/AnrRecordDataCategoryService.php +++ b/src/Service/AnrRecordDataCategoryService.php @@ -29,9 +29,9 @@ class AnrRecordDataCategoryService extends AbstractService */ public function createDataCategory($data) { - $dc = $this->get('table')->getEntityByFields(['label' => $data['label'], 'anr' => $data['anr']->get('id')]); + $dc = $this->get('table')->getEntityByFields(['label' => $data['label'], 'anr' => $data['anr']->getId()]); if(count($dc)) { - return $dc[0]->get('id'); + return $dc[0]->getId(); } return $this->create($data, true); } @@ -77,7 +77,7 @@ public function importFromArray($data, $anr) try { $dataCategoryEntity = $this->get('table')->getEntityByFields(['label' => $data['label'], 'anr' => $anr]); if (count($dataCategoryEntity)) { - $id = $dataCategoryEntity[0]->get('id'); + $id = $dataCategoryEntity[0]->getId(); } else { $id = $this->create($data); } diff --git a/src/Service/AnrRecordProcessorService.php b/src/Service/AnrRecordProcessorService.php index 44647c6d..923ef4fc 100644 --- a/src/Service/AnrRecordProcessorService.php +++ b/src/Service/AnrRecordProcessorService.php @@ -158,7 +158,7 @@ public function importFromArray($data, $anr) try { $processorEntity = $this->get('table')->getEntityByFields(['label' => $newData['label'], 'anr' => $anr]); if (count($processorEntity)) { - $id = $processorEntity[0]->get('id'); + $id = $processorEntity[0]->getId(); } else { $id = $this->create($newData); } diff --git a/src/Service/AnrRecordRecipientService.php b/src/Service/AnrRecordRecipientService.php index 305652b7..a6146c67 100644 --- a/src/Service/AnrRecordRecipientService.php +++ b/src/Service/AnrRecordRecipientService.php @@ -76,7 +76,7 @@ public function importFromArray($data, $anr) 'anr' => $anr ]); if (count($recipientEntity)) { - $id = $recipientEntity[0]->get('id'); + $id = $recipientEntity[0]->getId(); } else { $id = $this->create($data); } diff --git a/src/Service/AnrService.php b/src/Service/AnrService.php index b5d6e26b..bb8adc3a 100755 --- a/src/Service/AnrService.php +++ b/src/Service/AnrService.php @@ -394,6 +394,35 @@ private function getPreparedAnrData( 'creator' => $anr->getCreator(), 'createdAt' => $anr->getCreatedAt()->format('d/m/Y H:i'), 'language' => $anr->getLanguage(), + 'languageCode' => $anr->getLanguageCode(), + 'cacheModelAreScalesUpdatable' => (int)$anr->getCacheModelAreScalesUpdatable(), + 'cacheModelShowRolfBrut' => (int)$anr->getCacheModelShowRolfBrut(), + 'contextAnaRisk' => $anr->getContextAnaRisk(), + 'contextGestRisk' => $anr->getContextGestRisk(), + 'evalLivrableDone' => $anr->getEvalLivrableDone(), + 'evalPlanRisks' => $anr->getEvalPlanRisks(), + 'evalRisks' => $anr->getEvalRisks(), + 'initAnrContext' => $anr->getInitAnrContext(), + 'initDefContext' => $anr->getInitDefContext(), + 'initEvalContext' => $anr->getInitEvalContext(), + 'initLivrableDone' => $anr->getInitLivrableDone(), + 'initRiskContext' => $anr->getInitRiskContext(), + 'isSnapshot' => (int)$anr->isAnrSnapshot(), + 'isStatsCollected' => (int)$anr->isStatsCollected(), + 'isVisibleOnDashboard' => $anr->isVisibleOnDashboard(), + 'manageRisks' => $anr->getManageRisks(), + 'model' => $anr->getModelId(), + 'modelImpacts' => $anr->getModelImpacts(), + 'modelLivrableDone' => $anr->getModelLivrableDone(), + 'modelSummary' => $anr->getModelSummary(), + 'seuil1' => $anr->getSeuil1(), + 'seuil2' => $anr->getSeuil2(), + 'seuilRolf1' => $anr->getSeuilRolf1(), + 'seuilRolf2' => $anr->getSeuilRolf2(), + 'showRolfBrut' => (int)$anr->showRolfBrut(), + 'seuilTraitement' => $anr->getSeuilTraitement(), + 'synthAct' => $anr->getSynthAct(), + 'synthThreat' => $anr->getSynthThreat(), ]; /* Check if the Anr is under background import. */ diff --git a/src/Service/SoaScaleCommentService.php b/src/Service/SoaScaleCommentService.php index f39af9eb..23059317 100644 --- a/src/Service/SoaScaleCommentService.php +++ b/src/Service/SoaScaleCommentService.php @@ -31,9 +31,8 @@ public function getSoaScaleCommentsData(Anr $anr): array /** @var SoaScaleComment[] $soaScaleComments */ $soaScaleComments = $this->soaScaleCommentTable->findByAnrOrderByIndex($anr); foreach ($soaScaleComments as $soaScaleComment) { - $soaScaleCommentId = $soaScaleComment->getId(); - $result[$soaScaleCommentId] = [ - 'id' => $soaScaleCommentId, + $result[] = [ + 'id' => $soaScaleComment->getId(), 'scaleIndex' => $soaScaleComment->getScaleIndex(), 'colour' => $soaScaleComment->getColour(), 'comment' => $soaScaleComment->getComment(),