UserService.swift 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. //
  2. // UserService.swift
  3. // TUIRoomKit
  4. //
  5. // Created by CY zhao on 2024/6/13.
  6. //
  7. import Foundation
  8. import RTCRoomEngine
  9. import ImSDK_Plus
  10. import Combine
  11. class UserService {
  12. private let engine = TUIRoomEngine.sharedInstance()
  13. private let imManager = V2TIMManager.sharedInstance()
  14. func fetchUserInfo(_ userId: String) -> AnyPublisher<UserInfo, RoomError> {
  15. return Future<UserInfo, RoomError> { [weak self] promise in
  16. guard let self = self else { return }
  17. self.engine.getUserInfo(userId) { userInfo in
  18. if let user = userInfo {
  19. promise(.success(UserInfo(userInfo: user)))
  20. } else {
  21. let error = RoomError(error: TUIError.userNotExist)
  22. promise(.failure(error))
  23. }
  24. } onError: { err, message in
  25. let error = RoomError(error: err, message: message, showToast: false)
  26. promise(.failure(error))
  27. }
  28. }
  29. .eraseToAnyPublisher()
  30. }
  31. }