From 64b225bce5d8d66222a1311c8d201f399ca9d6b8 Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Tue, 17 Feb 2026 17:47:26 +0000
Subject: [PATCH] Update webit/w-firma-api to version 3

---
 src/UcrmHelper.php |   34 +++++++++++++++++++++-------------
 1 files changed, 21 insertions(+), 13 deletions(-)

diff --git a/src/UcrmHelper.php b/src/UcrmHelper.php
index ccdd37e..d5f2eeb 100644
--- a/src/UcrmHelper.php
+++ b/src/UcrmHelper.php
@@ -2,47 +2,55 @@
 
 namespace SIPL\UCRM\wFirma;
 
+use Ubnt\UcrmPluginSdk\Service\UcrmOptionsManager;
+
 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 getSelfUrl(): string {
+		$ucrmOptionsManager = new UcrmOptionsManager($this->rootDirectory);
+		$options = $ucrmOptionsManager->loadOptions();
+		return $options->ucrmLocalUrl ?? $options->ucrmPublicUrl ?? '';
+	}
+
+	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,12 +58,12 @@
 		return $this->config;
 	}
 
-	function getVersion() {
+	function getVersion(): string {
 		$response = $this->getApi()->get('/version');
 		return $response['version'];
 	}
 
-	function getCurrentEvent() {
+	function getCurrentEvent(): array {
 		if ($this->event === NULL) {
 			try {
 				if (($_SERVER['REQUEST_METHOD'] ?? '') !== 'POST') {
@@ -79,7 +87,7 @@
 					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');
 				}
 

--
Gitblit v1.10.0