From 8f73531e89d16793044fd4530b8cac784a59f76e Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Thu, 29 Jul 2021 00:27:05 -0700 Subject: [PATCH] Add WorkflowMessage.getTemplateFields API --- .../WorkflowMessage/GetTemplateFields.php | 69 +++++++++++++++++++ Civi/Api4/WorkflowMessage.php | 9 +++ 2 files changed, 78 insertions(+) create mode 100644 Civi/Api4/Action/WorkflowMessage/GetTemplateFields.php diff --git a/Civi/Api4/Action/WorkflowMessage/GetTemplateFields.php b/Civi/Api4/Action/WorkflowMessage/GetTemplateFields.php new file mode 100644 index 0000000000..bef1735e03 --- /dev/null +++ b/Civi/Api4/Action/WorkflowMessage/GetTemplateFields.php @@ -0,0 +1,69 @@ +workflow); + /** @var \Civi\WorkflowMessage\FieldSpec[] $fields */ + $fields = $item->getFields(); + $array = []; + $genericExamples = [ + 'string[]' => ['example-string1', 'example-string2...'], + 'string' => 'example-string', + 'int[]' => [1, 2, 3], + 'int' => 123, + 'double[]' => [1.23, 4.56], + 'double' => 1.23, + 'array' => [], + ]; + + switch ($this->format) { + case 'metadata': + foreach ($fields as $name => $field) { + $array[$name] = $field->toArray(); + } + return $array; + + case 'example': + foreach ($fields as $name => $field) { + $array[$name] = NULL; + foreach (array_intersect(array_keys($genericExamples), $field->getType()) as $ex) { + $array[$name] = $genericExamples[$ex]; + } + } + ksort($array); + return [$array]; + + default: + throw new \RuntimeException("Unrecognized format"); + } + } + +} diff --git a/Civi/Api4/WorkflowMessage.php b/Civi/Api4/WorkflowMessage.php index 565bff7953..a206214bb0 100644 --- a/Civi/Api4/WorkflowMessage.php +++ b/Civi/Api4/WorkflowMessage.php @@ -61,6 +61,15 @@ class WorkflowMessage extends Generic\AbstractEntity { ->setCheckPermissions($checkPermissions); } + /** + * @param bool $checkPermissions + * @return Generic\BasicGetFieldsAction + */ + public static function getTemplateFields($checkPermissions = TRUE) { + return (new Action\WorkflowMessage\GetTemplateFields(__CLASS__, __FUNCTION__)) + ->setCheckPermissions($checkPermissions); + } + /** * @param bool $checkPermissions * @return Generic\BasicGetFieldsAction -- 2.25.1