/
ConversationCellViewModel.swift
45 lines (38 loc) · 1.26 KB
/
ConversationCellViewModel.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//
// ConversationCellViewModel.swift
// Hello Chat
//
// Created by leeesangheee on 2021/08/06.
//
import Foundation
class ConversationCellViewModel: ObservableObject {
@Published var message: Message
@Published var chatPartner: User?
@Published var showingErrorAlert = false
@Published var errorMessage = ""
init(_ message: Message) {
self.message = message
fetchChatPartner()
}
var chatPartnerId: String {
return message.fromId == AuthViewModel.shared.currentUser?.id ? message.toId : message.fromId
}
var chatPartnerUsername: String {
guard let chatPartner = chatPartner else { return "" }
return chatPartner.username
}
var chatPartnerProfileImageUrl: URL? {
guard let chatPartner = chatPartner else { return nil }
return URL(string: chatPartner.profileImageUrl)
}
func fetchChatPartner() {
COLLECTION_USERS.document(chatPartnerId).getDocument { snapshot, error in
if let errorMessage = error?.localizedDescription {
self.showingErrorAlert = true
self.errorMessage = errorMessage
return
}
self.chatPartner = try? snapshot?.data(as: User.self)
}
}
}