From 18b2131d7518baa635f08af6ffb2a2ee2245495d Mon Sep 17 00:00:00 2001 From: NicoDucou Date: Tue, 31 Dec 2024 10:42:00 +0100 Subject: [PATCH] Plagiarism: Compilatio: fix analyses API query to work with all services and contracts for compilatio - refs BT#22318 --- main/inc/lib/Compilatio.php | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/main/inc/lib/Compilatio.php b/main/inc/lib/Compilatio.php index 06b2e46c5d..0fea4e5ef7 100644 --- a/main/inc/lib/Compilatio.php +++ b/main/inc/lib/Compilatio.php @@ -191,13 +191,26 @@ class Compilatio $documentInfo = [ 'report_url' => $dataDocument['report_url'], ]; - - if (isset($dataDocument['analyses']['anasim']['state'])) { - $documentInfo['analysis_status'] = $dataDocument['analyses']['anasim']['state']; + // anasim analyse type is applied for services Magister and Copyright + // anasim-premium analyse type is applied for services Magister+ and Copyright+ + $anasim = 'anasim'; + if (isset($dataDocument['analyses']['anasim-premium'])) { + $anasim = 'anasim-premium'; + if (isset($dataDocument['analyses']['anasim'])) { + if (isset($dataDocument['analyses']['anasim']['creation_launch_date']) && isset($dataDocument['analyses']['anasim-premium']['creation_launch_date'])) { + // if the 2 analyses type exist (which could happen technically but would be exceptional) then we present the most recent one. + if ($dataDocument['analyses']['anasim']['creation_launch_date'] > $dataDocument['analyses']['anasim-premium']['creation_launch_date']) { + $anasim = 'anasim'; + } + } + } } - - if (isset($dataDocument['light_reports']['anasim']['scores']['global_score_percent'])) { - $documentInfo['report_percent'] = $dataDocument['light_reports']['anasim']['scores']['global_score_percent']; + if (isset($dataDocument['analyses'][$anasim]['state'])) { + $documentInfo['analysis_status'] = $dataDocument['analyses'][$anasim]['state']; + } + + if (isset($dataDocument['light_reports'][$anasim]['scores']['global_score_percent'])) { + $documentInfo['report_percent'] = $dataDocument['light_reports'][$anasim]['scores']['global_score_percent']; } return $documentInfo;