Skip to content

Commit 5fbce59

Browse files
authored
Fix injecting keychain instances (#25704)
1 parent 7d67a88 commit 5fbce59

1 file changed

Lines changed: 30 additions & 17 deletions

File tree

Modules/Sources/WordPressData/Swift/Blog+SelfHosted.swift

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,20 @@ public extension Blog {
6969

7070
/// Retrieve Application Tokens
7171
///
72-
func getApplicationToken(using keychainImplementation: KeychainAccessible = AppKeychain()) throws -> String {
73-
try keychainImplementation.getPassword(for: self.getUsername(), serviceName: self.getUrlString())
72+
func getApplicationToken(using keychainImplementation: KeychainAccessible? = nil) throws -> String {
73+
try (keychainImplementation ?? self.keychain)
74+
.getPassword(for: self.getUsername(), serviceName: self.getUrlString())
7475
}
7576

7677
/// Delete Application Token
7778
///
78-
func deleteApplicationToken(using keychainImplementation: KeychainAccessible = AppKeychain()) throws {
79-
try? keychainImplementation.setPassword(for: self.getUsername(), to: nil, serviceName: self.getUrlString())
79+
func deleteApplicationToken(using keychainImplementation: KeychainAccessible? = nil) throws {
80+
try? (keychainImplementation ?? self.keychain)
81+
.setPassword(
82+
for: self.getUsername(),
83+
to: nil,
84+
serviceName: self.getUrlString()
85+
)
8086
}
8187

8288
@available(swift, obsoleted: 1.0)
@@ -89,9 +95,14 @@ public extension Blog {
8995
///
9096
func setApplicationToken(
9197
_ newValue: String,
92-
using keychainImplementation: KeychainAccessible = AppKeychain()
98+
using keychainImplementation: KeychainAccessible? = nil
9399
) throws {
94-
try keychainImplementation.setPassword(for: self.getUsername(), to: newValue, serviceName: self.getUrlString())
100+
try (keychainImplementation ?? self.keychain)
101+
.setPassword(
102+
for: self.getUsername(),
103+
to: newValue,
104+
serviceName: self.getUrlString()
105+
)
95106
}
96107

97108
/// A null-safe wrapper for `Blog.username`
@@ -104,20 +115,22 @@ public extension Blog {
104115
}
105116

106117
/// A null-safe replacement for `Blog.password(get)`
107-
func getPassword(using keychainImplementation: KeychainAccessible = AppKeychain()) throws -> String {
108-
try keychainImplementation.getPassword(
109-
for: self.getUsername(),
110-
serviceName: self.getXMLRPCEndpoint().absoluteString
111-
)
118+
func getPassword(using keychainImplementation: KeychainAccessible? = nil) throws -> String {
119+
try (keychainImplementation ?? self.keychain)
120+
.getPassword(
121+
for: self.getUsername(),
122+
serviceName: self.getXMLRPCEndpoint().absoluteString
123+
)
112124
}
113125

114126
/// A null-safe replacement for `Blog.password(set)`
115-
func setPassword(to newValue: String, using keychainImplementation: KeychainAccessible = AppKeychain()) throws {
116-
try keychainImplementation.setPassword(
117-
for: self.getUsername(),
118-
to: newValue,
119-
serviceName: self.getXMLRPCEndpoint().absoluteString
120-
)
127+
func setPassword(to newValue: String, using keychainImplementation: KeychainAccessible? = nil) throws {
128+
try (keychainImplementation ?? self.keychain)
129+
.setPassword(
130+
for: self.getUsername(),
131+
to: newValue,
132+
serviceName: self.getXMLRPCEndpoint().absoluteString
133+
)
121134
}
122135

123136
func wordPressClientParsedUrl() throws -> ParsedUrl {

0 commit comments

Comments
 (0)