From 67bcc9b4c77e90113898baa4e14cbe4faaccfd37 Mon Sep 17 00:00:00 2001
From: QSD_faris <info@qsdbih.com>
Date: Wed, 22 May 2024 17:34:41 +0200
Subject: [PATCH] edit url configuration

---
 Sources/Deskpro.swift | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/Sources/Deskpro.swift b/Sources/Deskpro.swift
index d6d9e80..54bc1b9 100644
--- a/Sources/Deskpro.swift
+++ b/Sources/Deskpro.swift
@@ -148,9 +148,23 @@ import UIKit
     /// - Returns: A [PresentBuilder](x-source-tag://PresentBuilder) instance to start building presentation paths.
     ///
     @objc public final func present() -> PresentBuilder {
-        let url = messengerConfig.appUrl//.appending(messengerConfig.appId)
-        //return PresentBuilder(url: url, containingViewController: containingViewController)
-        return PresentBuilder(url: url, appId: messengerConfig.appId, coordinator: coordinator)
+        let url = buildUrl(baseUrl: messengerConfig.appUrl, appId: messengerConfig.appId)
+        return PresentBuilder(url: url ?? "", appId: messengerConfig.appId, coordinator: coordinator)
+    }
+    
+    func buildUrl(baseUrl: String, appId: String) -> String? {
+        let platformData = ["platform": "IOS"]
+        
+        guard let platformJsonData = try? JSONSerialization.data(withJSONObject: platformData, options: []),
+              let platformJsonString = String(data: platformJsonData, encoding: .utf8),
+              let encodedPlatform = platformJsonString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {
+            return nil
+        }
+        
+        let formattedBaseUrl = baseUrl.trimmingCharacters(in: CharacterSet(charactersIn: "/"))
+        let formattedAppId = "/" + appId.trimmingCharacters(in: CharacterSet(charactersIn: "/"))
+        
+        return "\(formattedBaseUrl)\(formattedAppId)/\(encodedPlatform)"
     }
     
     ///   Closes the chat view presented by the DeskPro SDK.