From f722ae59c5c9d5146177a4f036032720391bcb19 Mon Sep 17 00:00:00 2001 From: Lucas Marcouiller <45882981+Hystepik@users.noreply.github.com> Date: Sat, 22 Jun 2024 19:05:03 +0200 Subject: [PATCH] New fetch object class for a certain objecttype for webhook test (#30101) Co-authored-by: Hystepik --- htdocs/core/lib/functions.lib.php | 7 +++++++ htdocs/webhook/ajax/webhook.php | 35 +++++++++++++++++++++++-------- htdocs/webhook/target_card.php | 2 +- 3 files changed, 34 insertions(+), 10 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 914ab1a879c..e264c38f898 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -12746,6 +12746,13 @@ function getElementProperties($elementType) $classname = 'Ccountry'; $table_element = 'c_country'; $subelement = ''; + } elseif ($elementType == 'knowledgerecord') { + $module = ''; + $classpath = 'knowledgemanagement/class'; + $classfile = 'knowledgerecord'; + $classname = 'KnowledgeRecord'; + $table_element = 'knowledgemanagement_knowledgerecord'; + $subelement = ''; } if (empty($classfile)) { diff --git a/htdocs/webhook/ajax/webhook.php b/htdocs/webhook/ajax/webhook.php index d3007781a5f..b648ac6554d 100644 --- a/htdocs/webhook/ajax/webhook.php +++ b/htdocs/webhook/ajax/webhook.php @@ -86,11 +86,25 @@ if ($action == "getjsonformtrigger") { $json->triggercode = empty($objecttriggername[1]) ? $triggercode : $objecttriggername[1]; - if (!empty($objecttriggername[1])) { - $objtype = explode("_", $objecttriggername[1])[0]; + if (!empty($json->triggercode)) { + $objtype = explode("_", $json->triggercode)[0]; $obj = findobjecttosend($objtype); if (is_object($obj)) { - //TODO: Case if obj is an object + dol_syslog("Ajax webhook: We clean object fetched"); + $properties = dol_get_object_properties($obj); + foreach ($properties as $key => $property) { + if (empty($property)) { + unset($obj->$key); + } + } + unset($obj->db); + unset($obj->fields); + unset($obj->table_element); + unset($obj->picto); + unset($obj->isextrafieldmanaged); + unset($obj->ismultientitymanaged); + + $json->object = $obj; } else { $objnotfound ++; } @@ -99,8 +113,8 @@ if ($action == "getjsonformtrigger") { } if ($objnotfound) { + dol_syslog("Ajax webhook: Class not found for trigger code ".$json->triggercode); $json->object = new stdClass(); - //$json->object->initAsSpecimen(); $json->object->field1 = 'field1'; $json->object->field2 = 'field2'; $json->object->field3 = 'field3'; @@ -119,9 +133,12 @@ if ($action == "getjsonformtrigger") { */ function findobjecttosend($objecttype) { - // TODO: Find right object from objecttype and initAsSpecimen - - // You can use fetchObjectByElement() - - return false; + dol_syslog("Ajax webhook: We fetch object of type = ".$objecttype." and we init it as specimen"); + $obj = fetchObjectByElement(0, dol_strtolower($objecttype)); + if (is_object($obj)) { + $obj->initAsSpecimen(); + } else { + return false; + } + return $obj; } diff --git a/htdocs/webhook/target_card.php b/htdocs/webhook/target_card.php index 8d3f4c47d4a..4e4ce0dc4db 100644 --- a/htdocs/webhook/target_card.php +++ b/htdocs/webhook/target_card.php @@ -602,7 +602,7 @@ if ($action == "test") { $.ajax({ method: \'GET\', url: \''.DOL_URL_ROOT.'/webhook/ajax/webhook.php\', - data: { action: "getjsonformtrigger", triggercode: triggercode }, + data: { action: "getjsonformtrigger", triggercode: triggercode , token:"'.currentToken().'"}, success: function(response) { obj = JSON.stringify(response); $("#jsondata").val(obj);