From bd63a5a9287e8dc1af9d4f0b0845f9e1b559d71e Mon Sep 17 00:00:00 2001 From: Wilfried WIWI Date: Mon, 15 Sep 2025 16:48:55 +0100 Subject: [PATCH 1/2] Add methods to retrieve rules from the STEM API --- src/includes/Helper.php | 65 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/src/includes/Helper.php b/src/includes/Helper.php index d312746..572ecc2 100644 --- a/src/includes/Helper.php +++ b/src/includes/Helper.php @@ -116,6 +116,7 @@ public static function clearTransients() delete_transient('beans_bamboo_display_current'); delete_transient('beans_liana_display_current'); delete_transient('beans_core_user_current_loginkey'); + delete_transient('beans_liana_rule'); } /** @@ -345,4 +346,68 @@ public static function getDisplay() return $display; } + + /** + * Retrieve rules from the STEM API. + * Fetch active rules from the Liana API endpoint. + * + * @param int $limit Optional limit for the number of rules to retrieve, defaults to 30 + * @return array The rules object containing active rules + * + * @since 4.0.5 + */ + public static function getRules($limit = 30) + { + $rules = self::requestTransientAPI( + 'GET', + 'liana/rule', + 'STEM', + 'v3', + array('limit' => $limit) + ); + + // If rules is empty return an empty array + if (empty($rules)) { + self::log('Helper: Liana Rules are empty'); + return array(); + } + + // Format rules by UID for easier access + $formatted_rules = array(); + if (isset($rules['data']) && is_array($rules['data'])) { + foreach ($rules['data'] as $rule) { + if (isset($rule['uid'])) { + $formatted_rules[$rule['uid']] = $rule; + } + } + } + + return $formatted_rules; + } + + /** + * Retrieve a single rule by UID from the STEM API. + * + * @param string $uid The unique identifier of the rule + * @return array|null The rule object or null if not found + * + * @since 4.0.5 + */ + public static function getRule($uid) + { + $rule = self::requestTransientAPI( + 'GET', + "liana/rule/{$uid}", + 'STEM', + 'v3' + ); + + if (empty($rule)) { + self::log("Helper: Rule with UID {$uid} not found"); + return null; + } + + return $rule; + } + } From 6b838d104e03c8108d13afdb794e30167e156282 Mon Sep 17 00:00:00 2001 From: Wilfried WIWI Date: Mon, 15 Sep 2025 17:07:58 +0100 Subject: [PATCH 2/2] update docstring --- src/includes/Helper.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/includes/Helper.php b/src/includes/Helper.php index 572ecc2..aaeb53d 100644 --- a/src/includes/Helper.php +++ b/src/includes/Helper.php @@ -354,7 +354,7 @@ public static function getDisplay() * @param int $limit Optional limit for the number of rules to retrieve, defaults to 30 * @return array The rules object containing active rules * - * @since 4.0.5 + * @since 4.0.7 */ public static function getRules($limit = 30) { @@ -391,7 +391,7 @@ public static function getRules($limit = 30) * @param string $uid The unique identifier of the rule * @return array|null The rule object or null if not found * - * @since 4.0.5 + * @since 4.0.7 */ public static function getRule($uid) {