From 6e5c040b4feae25dc0a92083803b437c1fe29c26 Mon Sep 17 00:00:00 2001
From: Antony Le Courtes <antony.lecourtes@unicaen.fr>
Date: Wed, 4 Sep 2024 15:35:37 +0200
Subject: [PATCH] Ajout de quelques test pour eviter les waring en cas de non
 utilisation de la config get_recipients_methods

---
 src/Service/SignatureConfigurationService.php | 10 +++++----
 src/Service/SignatureService.php              | 22 ++++++++++++-------
 2 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/src/Service/SignatureConfigurationService.php b/src/Service/SignatureConfigurationService.php
index eecb5e5..4a9ec31 100644
--- a/src/Service/SignatureConfigurationService.php
+++ b/src/Service/SignatureConfigurationService.php
@@ -127,10 +127,12 @@ class SignatureConfigurationService
         $methods = $this->configuration->getConfiguration('unicaen-signature.get_recipients_methods');
         $return = [];
         foreach ($methods as $method) {
-            foreach ($method['options'] as &$option) {
-                if( is_callable($option['values']) ){
-                    $values = $option['values']($this->serviceContainer);
-                    $option['values'] = $values;
+            if(array_key_exists('options', $method)) {
+                foreach ($method['options'] as &$option) {
+                    if (is_callable($option['values'])) {
+                        $values           = $option['values']($this->serviceContainer);
+                        $option['values'] = $values;
+                    }
                 }
             }
             $return[] = $method;
diff --git a/src/Service/SignatureService.php b/src/Service/SignatureService.php
index 54f47b8..7ac9396 100644
--- a/src/Service/SignatureService.php
+++ b/src/Service/SignatureService.php
@@ -280,7 +280,9 @@ class SignatureService
             $currentStep['allSignToComplete'] = $step->isAllRecipientsSign();
             $currentStep['editable'] = $step->isEditableRecipients();
             $currentStep['missing_recipients'] = false;
-            $currentStep['dynamicRecipients'] = is_callable($method['getRecipients']);
+            $currentStep['recipient_method'] = $step->getRecipientsMethod();
+            $currentStep['options'] = $step->getOptions();
+            $currentStep['dynamicRecipients'] = (!empty($method))?is_callable($method['getRecipients']):false;
             $currentStep['recipients'] = [];
             $currentStep['observers'] = [];
 
@@ -300,13 +302,17 @@ class SignatureService
             else {
                 $observers = [];
             }
-            if (is_callable($method['getRecipients'])) {
-                $options = array_merge_recursive($extrasOptions, $step->getOptions());
-                $recipientsDatas = $method['getRecipients']($this->getServiceContainer(), $options);
-                $recipients = array_values($recipientsDatas);
-            }
-            else {
-                $recipients = $step->getOptions()['recipients'];
+            //Uniquement si on a définit des méthodes dynamiques de récupération dans la config unicaen-signature
+            if($currentStep['dynamicRecipients'])
+            {
+                if (is_callable($method['getRecipients'])) {
+                    $options = array_merge_recursive($extrasOptions, $step->getOptions());
+                    $recipientsDatas = $method['getRecipients']($this->getServiceContainer(), $options);
+                    $recipients = array_values($recipientsDatas);
+                }
+                else {
+                    $recipients = $step->getOptions()['recipients'];
+                }
             }
 
             if ($recipients == null) {
-- 
GitLab