forked from DataDog/dd-sdk-ios
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDatadog+objc.swift
110 lines (91 loc) · 3.12 KB
/
Datadog+objc.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/*
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0.
* This product includes software developed at Datadog (https://www.datadoghq.com/).
* Copyright 2019-Present Datadog, Inc.
*/
import Foundation
import DatadogCore
import DatadogInternal
@objc
public class DDTrackingConsent: NSObject {
internal let sdkConsent: TrackingConsent
internal init(sdkConsent: TrackingConsent) {
self.sdkConsent = sdkConsent
}
// MARK: - Public
@objc
public static func granted() -> DDTrackingConsent { .init(sdkConsent: .granted) }
@objc
public static func notGranted() -> DDTrackingConsent { .init(sdkConsent: .notGranted) }
@objc
public static func pending() -> DDTrackingConsent { .init(sdkConsent: .pending) }
}
@objc
public class DDDatadog: NSObject {
// MARK: - Public
@objc
public static func initialize(
configuration: DDConfiguration,
trackingConsent: DDTrackingConsent
) {
Datadog.initialize(
with: configuration.sdkConfiguration,
trackingConsent: trackingConsent.sdkConsent
)
}
@objc
public static func setVerbosityLevel(_ verbosityLevel: DDSDKVerbosityLevel) {
switch verbosityLevel {
case .debug: Datadog.verbosityLevel = .debug
case .warn: Datadog.verbosityLevel = .warn
case .error: Datadog.verbosityLevel = .error
case .critical: Datadog.verbosityLevel = .critical
case .none: Datadog.verbosityLevel = nil
}
}
@objc
public static func verbosityLevel() -> DDSDKVerbosityLevel {
switch Datadog.verbosityLevel {
case .debug: return .debug
case .warn: return .warn
case .error: return .error
case .critical: return .critical
case .none: return .none
}
}
@objc
public static func setUserInfo(userId: String, name: String? = nil, email: String? = nil, extraInfo: [String: Any] = [:]) {
Datadog.setUserInfo(id: userId, name: name, email: email, extraInfo: extraInfo.dd.swiftAttributes)
}
@objc
@available(*, deprecated, message: "UserInfo id property is now mandatory.")
public static func setUserInfo(id: String? = nil, name: String? = nil, email: String? = nil, extraInfo: [String: Any] = [:]) {
Datadog.setUserInfo(id: id, name: name, email: email, extraInfo: extraInfo.dd.swiftAttributes)
}
@objc
public static func addUserExtraInfo(_ extraInfo: [String: Any]) {
Datadog.addUserExtraInfo(extraInfo.dd.swiftAttributes)
}
@objc
public static func setTrackingConsent(consent: DDTrackingConsent) {
Datadog.set(trackingConsent: consent.sdkConsent)
}
@objc
public static func isInitialized() -> Bool {
return Datadog.isInitialized()
}
@objc
public static func stopInstance() {
Datadog.stopInstance()
}
@objc
public static func clearAllData() {
Datadog.clearAllData()
}
#if DD_SDK_COMPILED_FOR_TESTING
@objc
public static func flushAndDeinitialize() {
Datadog.flushAndDeinitialize()
}
#endif
}