41 lines
996 B
Swift
41 lines
996 B
Swift
|
//
|
||
|
// LocalData.swift
|
||
|
// MastoSearch
|
||
|
//
|
||
|
// Created by Shadowfacts on 12/15/21.
|
||
|
//
|
||
|
|
||
|
import Foundation
|
||
|
|
||
|
class LocalData {
|
||
|
private init() {}
|
||
|
|
||
|
private static let encoder = PropertyListEncoder()
|
||
|
private static let decoder = PropertyListDecoder()
|
||
|
|
||
|
static var account: AccountInfo? {
|
||
|
get {
|
||
|
guard let data = UserDefaults.standard.data(forKey: "account") else {
|
||
|
return nil
|
||
|
}
|
||
|
return try? decoder.decode(AccountInfo.self, from: data)
|
||
|
}
|
||
|
set {
|
||
|
guard let newValue = newValue else {
|
||
|
UserDefaults.standard.set(nil, forKey: "account")
|
||
|
return
|
||
|
}
|
||
|
let data = try! encoder.encode(newValue)
|
||
|
UserDefaults.standard.set(data, forKey: "account")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
struct AccountInfo: Codable {
|
||
|
let instanceURL: URL
|
||
|
var clientID: String!
|
||
|
var clientSecret: String!
|
||
|
var accessToken: String!
|
||
|
}
|
||
|
|
||
|
}
|