Ferrite: Remove keychain shared class

Re-enable this when it's actually needed.

Signed-off-by: kingbri <bdashore3@gmail.com>
This commit is contained in:
kingbri 2022-07-24 15:19:18 -04:00
parent 45526057ac
commit 4e169b47b3
4 changed files with 13 additions and 29 deletions

View file

@ -1,5 +1,5 @@
# File exclusion
--exclude Ferrite/API/Keychain.swift
# --exclude Ferrite/API/Keychain.swift
# Formatting options
--acronyms ID,URL,UUID

View file

@ -23,7 +23,6 @@
0CA148E1288903F000DE2211 /* Collection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CA148C9288903F000DE2211 /* Collection.swift */; };
0CA148E2288903F000DE2211 /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CA148CA288903F000DE2211 /* Data.swift */; };
0CA148E3288903F000DE2211 /* Task.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CA148CB288903F000DE2211 /* Task.swift */; };
0CA148E4288903F000DE2211 /* Keychain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CA148CC288903F000DE2211 /* Keychain.swift */; };
0CA148E5288903F000DE2211 /* DebridManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CA148CD288903F000DE2211 /* DebridManager.swift */; };
0CA148E6288903F000DE2211 /* WebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CA148CE288903F000DE2211 /* WebView.swift */; };
0CA148E7288903F000DE2211 /* ToastViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CA148CF288903F000DE2211 /* ToastViewModel.swift */; };
@ -51,7 +50,6 @@
0CA148C9288903F000DE2211 /* Collection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Collection.swift; sourceTree = "<group>"; };
0CA148CA288903F000DE2211 /* Data.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Data.swift; sourceTree = "<group>"; };
0CA148CB288903F000DE2211 /* Task.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Task.swift; sourceTree = "<group>"; };
0CA148CC288903F000DE2211 /* Keychain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Keychain.swift; sourceTree = "<group>"; };
0CA148CD288903F000DE2211 /* DebridManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DebridManager.swift; sourceTree = "<group>"; };
0CA148CE288903F000DE2211 /* WebView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebView.swift; sourceTree = "<group>"; };
0CA148CF288903F000DE2211 /* ToastViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ToastViewModel.swift; sourceTree = "<group>"; };
@ -160,7 +158,6 @@
0CA148F12889066000DE2211 /* API */ = {
isa = PBXGroup;
children = (
0CA148CC288903F000DE2211 /* Keychain.swift */,
0CA148D0288903F000DE2211 /* RealDebridWrapper.swift */,
0CA148C4288903F000DE2211 /* RealDebridModels.swift */,
);
@ -270,7 +267,6 @@
0CBC76FD288D914F0054BE44 /* BatchChoiceView.swift in Sources */,
0CA148EC288903F000DE2211 /* ContentView.swift in Sources */,
0CA148E1288903F000DE2211 /* Collection.swift in Sources */,
0CA148E4288903F000DE2211 /* Keychain.swift in Sources */,
0CA148DD288903F000DE2211 /* ScrapingViewModel.swift in Sources */,
0CA148D8288903F000DE2211 /* MagnetChoiceView.swift in Sources */,
0CA148E3288903F000DE2211 /* Task.swift in Sources */,

View file

@ -1,13 +0,0 @@
//
// Keychain.swift
// Ferrite
//
// Created by Brian Dashore on 7/20/22.
//
import Foundation
import KeychainSwift
public class Keychain {
static let shared = KeychainSwift()
}

View file

@ -6,6 +6,7 @@
//
import Foundation
import KeychainSwift
public enum RealDebridError: Error {
case InvalidUrl
@ -21,7 +22,7 @@ public class RealDebrid: ObservableObject {
var parentManager: DebridManager?
let jsonDecoder = JSONDecoder()
let keychain = Keychain()
let keychain = KeychainSwift()
let baseAuthUrl = "https://api.real-debrid.com/oauth/v2"
let baseApiUrl = "https://api.real-debrid.com/rest/1.0"
@ -97,7 +98,7 @@ public class RealDebrid: ObservableObject {
if let clientId = rawResponse?.clientID, let clientSecret = rawResponse?.clientSecret {
UserDefaults.standard.set(clientId, forKey: "RealDebrid.ClientId")
Keychain.shared.set(clientSecret, forKey: "RealDebrid.ClientSecret")
keychain.set(clientSecret, forKey: "RealDebrid.ClientSecret")
try await getTokens(deviceCode: deviceCode)
@ -120,7 +121,7 @@ public class RealDebrid: ObservableObject {
throw RealDebridError.EmptyData
}
guard let clientSecret = Keychain.shared.get("RealDebrid.ClientSecret") else {
guard let clientSecret = keychain.get("RealDebrid.ClientSecret") else {
throw RealDebridError.EmptyData
}
@ -142,8 +143,8 @@ public class RealDebrid: ObservableObject {
let rawResponse = try jsonDecoder.decode(TokenResponse.self, from: data)
Keychain.shared.set(rawResponse.accessToken, forKey: "RealDebrid.AccessToken")
Keychain.shared.set(rawResponse.refreshToken, forKey: "RealDebrid.RefreshToken")
keychain.set(rawResponse.accessToken, forKey: "RealDebrid.AccessToken")
keychain.set(rawResponse.refreshToken, forKey: "RealDebrid.RefreshToken")
let accessTimestamp = Date().timeIntervalSince1970 + Double(rawResponse.expiresIn)
UserDefaults.standard.set(accessTimestamp, forKey: "RealDebrid.AccessTokenStamp")
@ -159,7 +160,7 @@ public class RealDebrid: ObservableObject {
if Date().timeIntervalSince1970 > accessTokenStamp {
do {
if let refreshToken = Keychain.shared.get("RealDebrid.RefreshToken") {
if let refreshToken = keychain.get("RealDebrid.RefreshToken") {
print("Refresh token found")
try await getTokens(deviceCode: refreshToken)
}
@ -169,22 +170,22 @@ public class RealDebrid: ObservableObject {
}
}
return Keychain.shared.get("RealDebrid.AccessToken")
return keychain.get("RealDebrid.AccessToken")
}
public func deleteTokens() async throws {
Keychain.shared.delete("RealDebrid.RefreshToken")
Keychain.shared.delete("RealDebrid.ClientSecret")
keychain.delete("RealDebrid.RefreshToken")
keychain.delete("RealDebrid.ClientSecret")
UserDefaults.standard.removeObject(forKey: "RealDebrid.ClientId")
UserDefaults.standard.removeObject(forKey: "RealDebrid.AccessTokenStamp")
// Run the request, doesn't matter if it fails
if let token = Keychain.shared.get("RealDebrid.AccessToken") {
if let token = keychain.get("RealDebrid.AccessToken") {
var request = URLRequest(url: URL(string: "\(baseApiUrl)/disable_access_token")!)
request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
_ = try? await URLSession.shared.data(for: request)
Keychain.shared.delete("RealDebrid.AccessToken")
keychain.delete("RealDebrid.AccessToken")
}
Task { @MainActor in