From e7bf0bf4fb1fc7f89a908dcc329e5281de8b15ea Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Mon, 16 Feb 2026 21:31:48 +0000
Subject: [PATCH] Add hook_install.php and remove hook_enable.php include in public.php

---
 src/UcrmHelper.php |   35 ++++++++++++++++++++---------------
 1 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/src/UcrmHelper.php b/src/UcrmHelper.php
index ced5aac..93fb323 100644
--- a/src/UcrmHelper.php
+++ b/src/UcrmHelper.php
@@ -3,46 +3,46 @@
 namespace SIPL\UCRM\wFirma;
 
 class UcrmHelper {
-	protected $rootDirectory;
-	protected $api = NULL;
-	protected $attributes = NULL;
-	protected $paymentMethods = NULL;
+	protected string $rootDirectory;
+	protected ?\Ubnt\UcrmPluginSdk\Service\UcrmApi $api = NULL;
+	protected ?UcrmAttributes $attributes = NULL;
+	protected ?UcrmPaymentMethods $paymentMethods = NULL;
 	protected $config = NULL;
 	protected $event = NULL;
 
 	function __construct(?string $rootDirectory = NULL) {
 		if ($rootDirectory === NULL) {
-			$rootDirectory = __DIR__ . '/..';
+			$rootDirectory = dirname(__DIR__);
 		}
 		$this->rootDirectory = $rootDirectory;
 	}
 
-	function getRootDirectory() {
+	function getRootDirectory(): string {
 		return $this->rootDirectory;
 	}
 
-	function getApi() {
+	function getApi(): \Ubnt\UcrmPluginSdk\Service\UcrmApi {
 		if ($this->api === NULL) {
 			$this->api = \Ubnt\UcrmPluginSdk\Service\UcrmApi::create($this->rootDirectory);
 		}
 		return $this->api;
 	}
 
-	function getAttributes() {
+	function getAttributes(): UcrmAttributes {
 		if ($this->attributes === NULL) {
 			$this->attributes = new UcrmAttributes($this);
 		}
 		return $this->attributes;
 	}
 
-	function getPaymentMethods() {
+	function getPaymentMethods(): UcrmPaymentMethods {
 		if ($this->paymentMethods === NULL) {
 			$this->paymentMethods = new UcrmPaymentMethods($this);
 		}
 		return $this->paymentMethods;
 	}
 
-	function getConfig() {
+	function getConfig(): array {
 		if ($this->config === NULL) {
 			$configManager = \Ubnt\UcrmPluginSdk\Service\PluginConfigManager::create($this->rootDirectory);
 			$this->config = $configManager->loadConfig();
@@ -50,7 +50,12 @@
 		return $this->config;
 	}
 
-	function getCurrentEvent() {
+	function getVersion(): string {
+		$response = $this->getApi()->get('/version');
+		return $response['version'];
+	}
+
+	function getCurrentEvent(): array {
 		if ($this->event === NULL) {
 			try {
 				if (($_SERVER['REQUEST_METHOD'] ?? '') !== 'POST') {
@@ -74,17 +79,17 @@
 					throw new \RuntimeException('Failed to process event - event not found');
 				}
 
-				if (!is_int($event['entityId'])) {
+				if (!ctype_digit($event['entityId'])) {
 					throw new \RuntimeException('Failed to process event - invalid entity ID');
 				}
 
-				$this->event = $data;
-			} catch (\Exception $e) {
+				$this->event = $event;
+			} catch (\Throwable $e) {
 				$this->event = $e;
 			}
 		}
 
-		if ($this->event instanceof \Exception) {
+		if ($this->event instanceof \Throwable) {
 			throw $this->event;
 		}
 

--
Gitblit v1.10.0