X-Git-Url: https://git.mdrn.pl/wl-app.git/blobdiff_plain/53b27422d140022594fc241cca91c3183be57bca..48b2fe9f7c2dc3d9aeaaa6dbfb27c7da4f3235ff:/iOS/Pods/MatomoTracker/MatomoTracker/Visitor.swift diff --git a/iOS/Pods/MatomoTracker/MatomoTracker/Visitor.swift b/iOS/Pods/MatomoTracker/MatomoTracker/Visitor.swift new file mode 100644 index 0000000..613bb07 --- /dev/null +++ b/iOS/Pods/MatomoTracker/MatomoTracker/Visitor.swift @@ -0,0 +1,44 @@ +// +// Visitor.swift +// PiwikTracker +// +// Created by Cornelius Horstmann on 26.02.17. +// Copyright © 2017 PIWIK. All rights reserved. +// + +import Foundation + +struct Visitor { + /// Unique ID per visitor (device in this case). Should be + /// generated upon first start and never changed after. + /// api-key: _id + let id: String + + /// An optional user identifier such as email or username. + /// api-key: uid + let userId: String? +} + +extension Visitor { + static func current(in matomoUserDefaults: MatomoUserDefaults) -> Visitor { + var matomoUserDefaults = matomoUserDefaults + let id: String + if let existingId = matomoUserDefaults.clientId { + id = existingId + } else { + let newId = newVisitorID() + matomoUserDefaults.clientId = newId + id = newId + } + let userId = matomoUserDefaults.visitorUserId + return Visitor(id: id, userId: userId) + } + + static func newVisitorID() -> String { + let uuid = UUID().uuidString + let sanitizedUUID = uuid.replacingOccurrences(of: "-", with: "") + let start = sanitizedUUID.startIndex + let end = sanitizedUUID.index(start, offsetBy: 16) + return String(sanitizedUUID[start..