Add specific methods to track analytics and test generated event types.

This commit is contained in:
Doug
2021-11-24 10:43:22 +00:00
parent 72f75cc36d
commit 84fdd7585c
12 changed files with 234 additions and 49 deletions
@@ -0,0 +1,74 @@
//
// Copyright 2021 New Vector Ltd
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
import Foundation
// MARK: -Events
extension AnalyticsEvent.Error: DictionaryConvertible { }
extension AnalyticsEvent.CallStarted: DictionaryConvertible { }
extension AnalyticsEvent.CallEnded: DictionaryConvertible { }
extension AnalyticsEvent.CallError: DictionaryConvertible { }
// MARK: - Enums
extension AnalyticsEvent.ErrorDomain: CustomStringConvertible {
var description: String { rawValue }
}
extension AnalyticsEvent.ErrorName: CustomStringConvertible {
var description: String { rawValue }
}
// MARK: - Helpers
extension __MXCallHangupReason {
var errorName: AnalyticsEvent.ErrorName {
switch self {
case .userHangup:
return .VoipUserHangup
case .inviteTimeout:
return .VoipInviteTimeout
case .iceFailed:
return .VoipIceFailed
case .iceTimeout:
return .VoipIceTimeout
case .userMediaFailed:
return .VoipUserMediaFailed
case .unknownError:
return .UnknownError
default:
return .UnknownError
}
}
}
extension DecryptionFailureReason {
var errorName: AnalyticsEvent.ErrorName {
switch self {
case .unspecified:
return .OlmUnspecifiedError
case .olmKeysNotSent:
return .OlmKeysNotSentError
case .olmIndexError:
return .OlmIndexError
case .unexpected:
return .UnknownError
default:
return .UnknownError
}
}
}