TM-SGNL-iOS/SignalServiceKit/Contacts/ThreadReplyInfoStore.swift
TeleMessage developers dde0620daf initial commit
2025-05-03 12:28:28 -07:00

35 lines
1.1 KiB
Swift

//
// Copyright 2023 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
import Foundation
public class ThreadReplyInfoStore {
private let keyValueStore: KeyValueStore
init() {
self.keyValueStore = KeyValueStore(collection: "TSThreadReplyInfo")
}
public func fetch(for threadUniqueId: String, tx: DBReadTransaction) -> ThreadReplyInfo? {
guard let dataValue = keyValueStore.getData(threadUniqueId, transaction: tx) else {
return nil
}
return try? JSONDecoder().decode(ThreadReplyInfo.self, from: dataValue)
}
public func save(_ value: ThreadReplyInfo, for threadUniqueId: String, tx: DBWriteTransaction) {
let dataValue: Data
do {
dataValue = try JSONEncoder().encode(value)
} catch {
owsFailDebug("Can't encode ThreadReplyInfo")
return
}
keyValueStore.setData(dataValue, key: threadUniqueId, transaction: tx)
}
public func remove(for threadUniqueId: String, tx: DBWriteTransaction) {
keyValueStore.removeValue(forKey: threadUniqueId, transaction: tx)
}
}