Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 30 additions & 17 deletions Modules/Sources/WordPressData/Swift/Blog+SelfHosted.swift
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,20 @@ public extension Blog {

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

/// Delete Application Token
///
func deleteApplicationToken(using keychainImplementation: KeychainAccessible = AppKeychain()) throws {
try? keychainImplementation.setPassword(for: self.getUsername(), to: nil, serviceName: self.getUrlString())
func deleteApplicationToken(using keychainImplementation: KeychainAccessible? = nil) throws {
try? (keychainImplementation ?? self.keychain)
.setPassword(
for: self.getUsername(),
to: nil,
serviceName: self.getUrlString()
)
}

@available(swift, obsoleted: 1.0)
Expand All @@ -89,9 +95,14 @@ public extension Blog {
///
func setApplicationToken(
_ newValue: String,
using keychainImplementation: KeychainAccessible = AppKeychain()
using keychainImplementation: KeychainAccessible? = nil
) throws {
try keychainImplementation.setPassword(for: self.getUsername(), to: newValue, serviceName: self.getUrlString())
try (keychainImplementation ?? self.keychain)
.setPassword(
for: self.getUsername(),
to: newValue,
serviceName: self.getUrlString()
)
}

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

/// A null-safe replacement for `Blog.password(get)`
func getPassword(using keychainImplementation: KeychainAccessible = AppKeychain()) throws -> String {
try keychainImplementation.getPassword(
for: self.getUsername(),
serviceName: self.getXMLRPCEndpoint().absoluteString
)
func getPassword(using keychainImplementation: KeychainAccessible? = nil) throws -> String {
try (keychainImplementation ?? self.keychain)
.getPassword(
for: self.getUsername(),
serviceName: self.getXMLRPCEndpoint().absoluteString
)
}

/// A null-safe replacement for `Blog.password(set)`
func setPassword(to newValue: String, using keychainImplementation: KeychainAccessible = AppKeychain()) throws {
try keychainImplementation.setPassword(
for: self.getUsername(),
to: newValue,
serviceName: self.getXMLRPCEndpoint().absoluteString
)
func setPassword(to newValue: String, using keychainImplementation: KeychainAccessible? = nil) throws {
try (keychainImplementation ?? self.keychain)
.setPassword(
for: self.getUsername(),
to: newValue,
serviceName: self.getXMLRPCEndpoint().absoluteString
)
}

func wordPressClientParsedUrl() throws -> ParsedUrl {
Expand Down