From 6e6fe657a5b54f82535f2937edc6f887b8759c67 Mon Sep 17 00:00:00 2001 From: winebarrel Date: Sun, 17 Nov 2024 17:05:48 +0900 Subject: [PATCH] Add Vault --- Pulse/Vault.swift | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 Pulse/Vault.swift diff --git a/Pulse/Vault.swift b/Pulse/Vault.swift new file mode 100644 index 0000000..6db5e25 --- /dev/null +++ b/Pulse/Vault.swift @@ -0,0 +1,32 @@ +import Foundation +import Valet + +enum Vault { + static let shared = Valet.valet(with: Identifier(nonEmpty: Bundle.main.bundleIdentifier)!, accessibility: .whenUnlocked) + + static var githubToken: String { + get { + do { + return try shared.string(forKey: "githubToken") + } catch KeychainError.itemNotFound { + // Nothing to do + } catch { + Logger.shared.error("failed to get githubToken from Valet: \(error)") + } + + return "" + } + + set(token) { + do { + if token.isEmpty { + try shared.removeObject(forKey: "githubToken") + } else { + try shared.setString(token, forKey: "githubToken") + } + } catch { + Logger.shared.error("failed to set githubToken to Valet: \(error)") + } + } + } +}