Added protocols for the timeline and memberDetails providers.

This commit is contained in:
Stefan Ceriu
2022-03-18 13:48:07 +02:00
parent 2eae0f0573
commit 22659ae214
7 changed files with 62 additions and 34 deletions
@@ -8,12 +8,7 @@
import Foundation
enum MemberDetailsProviderError: Error {
case invalidRoomProxy
case failedRetrievingUserAvatarURL
}
class MemberDetailsProvider {
class MemberDetailsProvider: MemberDetailsProviderProtocol {
private let roomProxy: RoomProxyProtocol?
private let processingQueue = DispatchQueue(label: "MemberDetailsProviderProcessingQueue")
private var memberAvatars = [String: String]()
@@ -0,0 +1,19 @@
//
// MemberDetailsProviderProtocol.swift
// ElementX
//
// Created by Stefan Ceriu on 18/03/2022.
// Copyright © 2022 Element. All rights reserved.
//
import Foundation
enum MemberDetailsProviderError: Error {
case invalidRoomProxy
case failedRetrievingUserAvatarURL
}
protocol MemberDetailsProviderProtocol {
func avatarURLForUserId(_ userId: String) -> String?
func avatarURLForUserId(_ userId: String, completion: @escaping (Result<String?, MemberDetailsProviderError>) -> Void)
}