From 8da274eb8e1ca8cdd8e12e0c5f6e60fd44bc8764 Mon Sep 17 00:00:00 2001 From: talksik Date: Tue, 21 Dec 2021 15:49:40 -0800 Subject: [PATCH] fixing decoding problem no need for server timestamp, manage it myself as I don't want this value creating automatically or updating automatically, I will decide --- nirvana-ios/Models/Message.swift | 2 +- nirvana-ios/Services/AuthSessionStore.swift | 33 ++++++++++----------- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/nirvana-ios/Models/Message.swift b/nirvana-ios/Models/Message.swift index ded2e96..360dc2b 100644 --- a/nirvana-ios/Models/Message.swift +++ b/nirvana-ios/Models/Message.swift @@ -18,7 +18,7 @@ struct Message: Identifiable, Codable { var audioDataUrl:String? @ServerTimestamp var sentTimestamp:Date? - @ServerTimestamp var firstListenTimestamp:Date? + var firstListenTimestamp:Date? enum CodingKeys: String, CodingKey { case id diff --git a/nirvana-ios/Services/AuthSessionStore.swift b/nirvana-ios/Services/AuthSessionStore.swift index 87fe302..3e8dfa9 100644 --- a/nirvana-ios/Services/AuthSessionStore.swift +++ b/nirvana-ios/Services/AuthSessionStore.swift @@ -292,26 +292,25 @@ extension AuthSessionStore { print("got all messages relevant") self.messagesArr = documents.compactMap { (queryDocumentSnapshot) -> Message? in - - let currMessage = try? queryDocumentSnapshot.data(as: Message.self) - print("new message received! \(queryDocumentSnapshot.data())") - - if currMessage != nil { // not really possible but just check - // if the user doesn't exist for the dictionary, then add it - // this means it's most likely someone new (never had user_friend relationship before) messaging for the user's inbox - // TODO: prolly want to make a call to get this sender user details for the inbox + do { + let currMessage = try queryDocumentSnapshot.data(as: Message.self) + print("new message received! \(queryDocumentSnapshot.data())") - if self.friendMessagesDict[currMessage!.senderId] == nil { - self.friendMessagesDict[currMessage!.senderId] = [currMessage!] - } else { - self.friendMessagesDict[currMessage!.senderId]?.append(currMessage!) + if currMessage != nil { // not really possible but just check + // if the user doesn't exist for the dictionary, then add it + // this means it's most likely someone new (never had user_friend relationship before) messaging for the user's inbox + // TODO: prolly want to make a call to get this sender user details for the inbox, but they should either be in the friendsArr or their are not a friend so won't be there + if self.friendMessagesDict[currMessage!.senderId] == nil { + self.friendMessagesDict[currMessage!.senderId] = [currMessage!] + } else { + self.friendMessagesDict[currMessage!.senderId]?.append(currMessage!) + } } + return currMessage + } catch { + print("error in trying to decode message \(error)") } - else { - print("unable to unwrap message") - } - - return currMessage + return nil } // TODO: optimize later