|
| 1 | +// |
| 2 | +// TrackerBatchBuilder.swift |
| 3 | +// |
| 4 | +// |
| 5 | +// Created by narongrit kanhanoi on 29/6/2565 BE. |
| 6 | +// |
| 7 | + |
| 8 | +import Foundation |
| 9 | + |
| 10 | +//{ "events": [..] } |
| 11 | + |
| 12 | +struct TrackerItem { |
| 13 | + let event: String |
| 14 | + let payload: [String: Any] |
| 15 | +} |
| 16 | +class TrackerBatchBuilder { |
| 17 | + |
| 18 | + var trackers: [TrackerItem] = [] |
| 19 | + |
| 20 | + func addEvent(event: String, payload: [String: Any]? = nil){ |
| 21 | + trackers.append(TrackerItem(event: event, payload: payload ?? [:])) |
| 22 | + } |
| 23 | + |
| 24 | + func build() -> [String: Any]{ |
| 25 | +// var events:[[String:Any]] = [[:]] |
| 26 | +// |
| 27 | +// trackers.forEach { item in |
| 28 | +// |
| 29 | +// var formField: [String: Any] = [ |
| 30 | +// "os_version": "iOS \(Pam.shared.osVersion)", |
| 31 | +// "app_version": Pam.shared.versionBuild, |
| 32 | +// "_session_id": Pam.shared.getSessionID() |
| 33 | +// ] |
| 34 | +// |
| 35 | +// if let trackingConsentMessageID = Pam.shared.config?.trackingConsentMessageID{ |
| 36 | +// // Pam.shared.tracking |
| 37 | +// formField["_consent_message_id"] = trackingConsentMessageID |
| 38 | +// } |
| 39 | +// |
| 40 | +// if let contactID = Pam.shared.getContactID() { |
| 41 | +// formField["_contact_id"] = contactID |
| 42 | +// } |
| 43 | +// |
| 44 | +// var event:[String:Any] = [ |
| 45 | +// "event": event, |
| 46 | +// "platform": "iOS: \(Pam.shared.osVersion), \(Pam.shared.bundleID): \(Pam.shared.versionBuild)" |
| 47 | +// ] |
| 48 | +// |
| 49 | +// item.payload?.forEach { |
| 50 | +// if $0.key == "page_url" || $0.key == "page_title" { |
| 51 | +// event[$0.key] = $0.value |
| 52 | +// }else{ |
| 53 | +// formField[$0.key] = $0.value |
| 54 | +// } |
| 55 | +// } |
| 56 | +// |
| 57 | +// if Pam.shared.isUserLogin() { |
| 58 | +// formField["_database"] = Pam.shared.config?.loginDBAlias ?? "" |
| 59 | +// if let customer = Pam.shared.getCustomerID() ?? Pam.shared.readValue(key: .customerID) { |
| 60 | +// formField["customer"] = customer |
| 61 | +// } |
| 62 | +// } else { |
| 63 | +// formField["_database"] = Pam.shared.config?.publicDBAlias ?? "" |
| 64 | +// } |
| 65 | +// |
| 66 | +// if let uuid = Pam.getDeviceUUID() { |
| 67 | +// formField["uuid"] = uuid |
| 68 | +// } |
| 69 | +// |
| 70 | +// event["form_fields"] = formField |
| 71 | +// |
| 72 | +// events.append(event) |
| 73 | + // } |
| 74 | + |
| 75 | + let res: [String: Any] = [ |
| 76 | + "events": [:] |
| 77 | + ] |
| 78 | + |
| 79 | + return res |
| 80 | + } |
| 81 | + |
| 82 | +} |
0 commit comments