Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@quintonpryce
Created July 18, 2019 19:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save quintonpryce/32c1fc933979689b6b2b315ec5a976ea to your computer and use it in GitHub Desktop.
Save quintonpryce/32c1fc933979689b6b2b315ec5a976ea to your computer and use it in GitHub Desktop.
Error Handling 2
private func trackAnalytic<T: AnalyticsParameter>(event: AnalyticsEvent, parameters: T?) {
if event.supportedTrackers.isEmpty {
failureHandler.failure("Event \(event.name) does not have any supported EventTrackers.")
return
}
for trackerKey in event.supportedTrackers {
if let eventTracker = eventTrackers[trackerKey] {
if eventTracker.isEventNameSupported(event: event.name) {
if let parameters = parameters, !parameters.isEmpty() {
eventTracker.track(event: event.name, with: parameters)
} else {
eventTracker.track(event: event.name)
}
} else {
failureHandler.failure("Event \(event.name) is not a supported event by the EventTracker \(trackerKey.name).")
}
} else {
failureHandler.failure("Event \(event.name) supported tracker \(trackerKey.name) has not been added to Analytics. " +
"To fix this you must call Analytics.shared.addEventTracker(key: \(trackerKey.name), tracker: \(trackerKey.name)Tracker()" +
"before tracking an event that is supported by that EventTracker.")
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment