Make the SessionDirectories type responsible for cleaning up data. (#3261)

This commit is contained in:
Doug
2024-09-11 14:32:03 +01:00
committed by GitHub
parent 84a3ffc135
commit af3a6ccbed
11 changed files with 192 additions and 80 deletions
@@ -10,10 +10,17 @@ import MatrixRustSDK
struct RestorationToken: Equatable {
let session: MatrixRustSDK.Session
let sessionDirectory: URL
let cacheDirectory: URL
let sessionDirectories: SessionDirectories
let passphrase: String?
let pusherNotificationClientIdentifier: String?
enum CodingKeys: CodingKey {
case session
case sessionDirectory
case cacheDirectory
case passphrase
case pusherNotificationClientIdentifier
}
}
extension RestorationToken: Codable {
@@ -35,11 +42,19 @@ extension RestorationToken: Codable {
}
self = try .init(session: session,
sessionDirectory: sessionDirectories.dataDirectory,
cacheDirectory: sessionDirectories.cacheDirectory,
sessionDirectories: sessionDirectories,
passphrase: container.decodeIfPresent(String.self, forKey: .passphrase),
pusherNotificationClientIdentifier: container.decodeIfPresent(String.self, forKey: .pusherNotificationClientIdentifier))
}
func encode(to encoder: any Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(session, forKey: .session)
try container.encode(sessionDirectories.dataDirectory, forKey: .sessionDirectory)
try container.encode(sessionDirectories.cacheDirectory, forKey: .cacheDirectory)
try container.encode(passphrase, forKey: .passphrase)
try container.encode(pusherNotificationClientIdentifier, forKey: .pusherNotificationClientIdentifier)
}
}
extension MatrixRustSDK.Session: Codable {