From 39dcce13dee7f6384477dcfde4fa4cb967f00636 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come.chilliet@fusiondirectory.org>
Date: Tue, 9 Jun 2020 14:42:30 +0200
Subject: [PATCH] :sparkles: feat(errors) Add toArray function for webservice
 integration

issue #6071
---
 include/errors/class_FusionDirectoryError.inc   |  9 +++++++++
 include/errors/class_SimplePluginCheckError.inc | 16 ++++++++++++++++
 2 files changed, 25 insertions(+)

diff --git a/include/errors/class_FusionDirectoryError.inc b/include/errors/class_FusionDirectoryError.inc
index 4fcd6a586..a846a6402 100644
--- a/include/errors/class_FusionDirectoryError.inc
+++ b/include/errors/class_FusionDirectoryError.inc
@@ -30,4 +30,13 @@ class FusionDirectoryError extends Error
     $this->htmlMessage = $htmlMessage;
     parent::__construct(htmlunescape(strip_tags($htmlMessage)), $code, $previous);
   }
+
+  public function toArray (): array
+  {
+    return [
+      'message' => $this->getMessage(),
+      'line'    => $this->getLine(),
+      'file'    => $this->getFile(),
+    ];
+  }
 }
diff --git a/include/errors/class_SimplePluginCheckError.inc b/include/errors/class_SimplePluginCheckError.inc
index c9679e4b3..56e19de8a 100644
--- a/include/errors/class_SimplePluginCheckError.inc
+++ b/include/errors/class_SimplePluginCheckError.inc
@@ -43,6 +43,22 @@ class SimplePluginCheckError extends FusionDirectoryError
     parent::__construct($htmlMessage, $code, $previous);
   }
 
+  public function toArray (): array
+  {
+    $array = parent::toArray();
+
+    if (isset($this->tab)) {
+      $array['dn']  = $this->tab->parent->getBaseObject()->dn;
+      $array['tab'] = get_class($this->tab);
+    }
+
+    if (isset($this->attribute)) {
+      $array['attribute'] = $this->attribute->getLdapName();
+    }
+
+    return $array;
+  }
+
   public function computeMsgDialogParameters (): array
   {
     $html = '';
-- 
GitLab