| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- //
- // ErrorService.swift
- // TUIRoomKit
- //
- // Created by CY zhao on 2024/6/13.
- //
- import Foundation
- import RTCRoomEngine
- struct RoomError: Error {
- let error: TUIError
- let message: String
- var actions: [Action] = []
-
- init(error: TUIError, message: String = "", showToast: Bool = true) {
- self.error = error
- self.message = message
- if showToast {
- actions.append(ViewActions.showToast(payload: ToastInfo(message: message)))
- }
- }
- }
- protocol LocalizedError {
- var description: String?{get}
- var isCommon: Bool{get}
- }
- extension TUIError: LocalizedError {
- var description: String? {
- switch self {
- case .roomIdNotExist:
- return .roomIdNotExist
- case .roomIdOccupied:
- return .roomIdOccupied
- case .roomUserFull:
- return .roomUserFull
- case .roomNameInvalid:
- return .roomNameInvalid
- case .roomIdInvalid:
- return .roomIdInvalid
- case .operationInvalidBeforeEnterRoom:
- return .operationInvalidBeforeEnterRoom
- case .operationNotSupportedInCurrentRoomType:
- return .operationNotSupportedInCurrentRoomType
- case .alreadyInOtherRoom:
- return .alreadyInOtherRoom
- default:
- return nil
- }
- }
-
- var isCommon: Bool {
- switch self {
- case .roomIdNotExist, .roomIdOccupied, .roomUserFull:
- return true
- default:
- return false
- }
- }
- }
- private extension String {
- static let roomIdNotExist = localized("The room does not exist, please confirm the room ID or create a room!")
- static let operationInvalidBeforeEnterRoom = localized("You need to enter the room to use this function.")
- static let operationNotSupportedInCurrentRoomType = localized("This operation is not supported in the current room type.")
- static let roomIdInvalid = localized("The room number is invalid. It must be printable ASCII characters and cannot exceed 48 bytes.")
- static let roomIdOccupied = localized("The room ID is occupied, please select another room ID.")
- static let roomNameInvalid = localized("The room name is invalid. It cannot exceed 30 bytes. If it contains Chinese characters, the character encoding must be UTF-8.")
- static let alreadyInOtherRoom = localized("You are already in another room and need to leave the room before joining a new room.")
- static let roomUserFull = localized("The room is full and you cannot enter the room temporarily.")
- }
|