Skip to content

Commit e64f7d5

Browse files
Updating SDK to 1e78e85 (1.0.0-2506-9947387) (#1986)
1 parent 0b9b9d8 commit e64f7d5

File tree

18 files changed

+106
-39
lines changed

18 files changed

+106
-39
lines changed

AuthenticatorShared/Core/Platform/Services/ClientService.swift

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ class DefaultClientBuilder: ClientBuilder {
285285
// MARK: Methods
286286

287287
func buildClient() -> BitwardenSdkClient {
288-
Client(settings: settings)
288+
Client(tokenProvider: DefaultClientManagedTokensProvider(), settings: settings)
289289
}
290290
}
291291

@@ -347,3 +347,14 @@ extension Client: BitwardenSdkClient {
347347
vault() as VaultClient
348348
}
349349
}
350+
351+
// MARK: DefaultTokenProvider
352+
353+
/// Default implementation of the SDK's `ClientManagedTokens`.
354+
/// Given that we are not performing authenticated API calls in BWA
355+
/// we just return `nil` for the access token.
356+
final class DefaultClientManagedTokensProvider: ClientManagedTokens {
357+
func getAccessToken() async -> String? {
358+
nil
359+
}
360+
}

AuthenticatorShared/Core/Vault/Services/TestHelpers/MockVaultClientService.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ class MockClientCollections: CollectionsClientProtocol {
163163

164164
func getCollectionTree(collections: [BitwardenSdk.CollectionView]) -> BitwardenSdk.CollectionViewTree {
165165
getCollectionTreeReceivedCollection = collections
166-
return getCollectionTreeReturnValue ?? BitwardenSdk.CollectionViewTree(noPointer: .init())
166+
return getCollectionTreeReturnValue ?? BitwardenSdk.CollectionViewTree(noHandle: .init())
167167
}
168168
}
169169

AuthenticatorShared/UI/Platform/Application/Extensions/Alert+Networking.swift

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,6 @@ extension Alert {
4545
title: Localizations.anErrorHasOccurred,
4646
message: serverError.message
4747
)
48-
case let BitwardenSdk.BitwardenError.E(message):
49-
return defaultAlert(
50-
title: Localizations.anErrorHasOccurred,
51-
message: message
52-
)
5348
case let error as URLError where error.code == .notConnectedToInternet || error.code == .networkConnectionLost:
5449
return internetConnectionError(tryAgain)
5550
case let error as URLError where error.code == .timedOut:

Bitwarden.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

BitwardenShared/Core/Platform/Extensions/BitwardenSdk+Platform.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ import Foundation
66
extension BitwardenSdk.BitwardenError: @retroactive CustomNSError {
77
/// The user-info dictionary.
88
public var errorUserInfo: [String: Any] {
9-
guard case let .E(message) = self else {
10-
return [:]
11-
}
12-
return ["Message": message]
9+
["SpecificError": String(describing: self)]
1310
}
1411
}

BitwardenShared/Core/Platform/Extensions/BitwardenSdk+PlatformTests.swift

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@ import XCTest
88
class BitwardenErrorTests: BitwardenTestCase {
99
// MARK: Tests
1010

11-
/// `getter:errorUserInfo` gets the appropriate user info based on the message of the error `E`
11+
/// `getter:errorUserInfo` gets the appropriate user info based on the message
12+
/// of the internal `BitwardenSdk.BitwardenError`.
1213
func test_errorUserInfo() {
13-
let expectedMessage = "expectedMessage"
14-
let error = BitwardenSdk.BitwardenError.E(message: expectedMessage)
15-
let userInfo = error.errorUserInfo
16-
XCTAssertEqual(userInfo["Message"] as? String, expectedMessage)
14+
let expectedMessage = "Crypto(BitwardenSdk.CryptoError.Fingerprint(message: \"internal error\"))"
15+
let error = BitwardenSdk.BitwardenError.Crypto(CryptoError.Fingerprint(message: "internal error"))
16+
let nsError = error as NSError
17+
let userInfo = nsError.userInfo
18+
XCTAssertEqual(userInfo["SpecificError"] as? String, expectedMessage)
1719
}
1820
}

BitwardenShared/Core/Platform/Services/ClientBuilderTests.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import XCTest
66
class ClientBuilderTests: BitwardenTestCase {
77
// MARK: Properties
88

9+
var clientManagedTokens: MockClientManagedTokens!
910
var errorReporter: MockErrorReporter!
1011
var mockPlatform: MockPlatformClientService!
1112
var subject: DefaultClientBuilder!
@@ -15,16 +16,19 @@ class ClientBuilderTests: BitwardenTestCase {
1516
override func setUp() {
1617
super.setUp()
1718

19+
clientManagedTokens = MockClientManagedTokens()
1820
errorReporter = MockErrorReporter()
1921
mockPlatform = MockPlatformClientService()
2022
subject = DefaultClientBuilder(
21-
errorReporter: errorReporter
23+
errorReporter: errorReporter,
24+
tokenProvider: clientManagedTokens
2225
)
2326
}
2427

2528
override func tearDown() {
2629
super.tearDown()
2730

31+
clientManagedTokens = nil
2832
errorReporter = nil
2933
mockPlatform = nil
3034
subject = nil

BitwardenShared/Core/Platform/Services/ClientService.swift

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -351,25 +351,31 @@ class DefaultClientBuilder: ClientBuilder {
351351
/// The settings applied to the client.
352352
private let settings: ClientSettings?
353353

354+
/// The token provider to pass to the SDK.
355+
private let tokenProvider: ClientManagedTokens
356+
354357
// MARK: Initialization
355358

356359
/// Initializes a new client.
357360
///
358361
/// - Parameters:
359362
/// - errorReporter: The service used by the application to report non-fatal errors.
360363
/// - settings: The settings applied to the client.
364+
/// - tokenProvider: The token provider to pass to the SDK.
361365
init(
362366
errorReporter: ErrorReporter,
363-
settings: ClientSettings? = nil
367+
settings: ClientSettings? = nil,
368+
tokenProvider: ClientManagedTokens
364369
) {
365370
self.errorReporter = errorReporter
366371
self.settings = settings
372+
self.tokenProvider = tokenProvider
367373
}
368374

369375
// MARK: Methods
370376

371377
func buildClient() -> BitwardenSdkClient {
372-
Client(settings: settings)
378+
Client(tokenProvider: tokenProvider, settings: settings)
373379
}
374380
}
375381

BitwardenShared/Core/Platform/Services/ServiceContainer.swift

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,11 @@ public class ServiceContainer: Services { // swiftlint:disable:this type_body_le
435435
let environmentService = DefaultEnvironmentService(errorReporter: errorReporter, stateService: stateService)
436436
let collectionService = DefaultCollectionService(collectionDataStore: dataStore, stateService: stateService)
437437
let settingsService = DefaultSettingsService(settingsDataStore: dataStore, stateService: stateService)
438-
let tokenService = DefaultTokenService(keychainRepository: keychainRepository, stateService: stateService)
438+
let tokenService = DefaultTokenService(
439+
errorReporter: errorReporter,
440+
keychainRepository: keychainRepository,
441+
stateService: stateService
442+
)
439443
let apiService = APIService(
440444
environmentService: environmentService,
441445
flightRecorder: flightRecorder,
@@ -463,7 +467,8 @@ public class ServiceContainer: Services { // swiftlint:disable:this type_body_le
463467
)
464468

465469
let clientBuilder = DefaultClientBuilder(
466-
errorReporter: errorReporter
470+
errorReporter: errorReporter,
471+
tokenProvider: tokenService
467472
)
468473
let clientService = DefaultClientService(
469474
clientBuilder: clientBuilder,

BitwardenShared/Core/Platform/Services/TokenService.swift

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import BitwardenKit
2+
import BitwardenSdk
3+
14
/// A protocol for a `TokenService` which manages accessing and updating the active account's tokens.
25
///
36
protocol TokenService: AnyObject {
@@ -35,6 +38,9 @@ protocol TokenService: AnyObject {
3538
actor DefaultTokenService: TokenService {
3639
// MARK: Properties
3740

41+
/// The service used by the application to report non-fatal errors.
42+
let errorReporter: ErrorReporter
43+
3844
/// The repository used to manages keychain items.
3945
let keychainRepository: KeychainRepository
4046

@@ -46,13 +52,16 @@ actor DefaultTokenService: TokenService {
4652
/// Initialize a `DefaultTokenService`.
4753
///
4854
/// - Parameters
55+
/// - errorReporter: The service used by the application to report non-fatal errors.
4956
/// - keychainRepository: The repository used to manages keychain items.
5057
/// - stateService: The service that manages the account state.
5158
///
5259
init(
60+
errorReporter: ErrorReporter,
5361
keychainRepository: KeychainRepository,
5462
stateService: StateService
5563
) {
64+
self.errorReporter = errorReporter
5665
self.keychainRepository = keychainRepository
5766
self.stateService = stateService
5867
}
@@ -65,7 +74,7 @@ actor DefaultTokenService: TokenService {
6574
}
6675

6776
func getIsExternal() async throws -> Bool {
68-
let accessToken = try await getAccessToken()
77+
let accessToken: String = try await getAccessToken()
6978
let tokenPayload = try TokenParser.parseToken(accessToken)
7079
return tokenPayload.isExternal
7180
}
@@ -81,3 +90,14 @@ actor DefaultTokenService: TokenService {
8190
try await keychainRepository.setRefreshToken(refreshToken, userId: userId)
8291
}
8392
}
93+
94+
// MARK: ClientManagedTokens (SDK)
95+
96+
extension DefaultTokenService: ClientManagedTokens {
97+
/// Gets the access token for the SDK, nil if any errors are thrown.
98+
func getAccessToken() async -> String? {
99+
// TODO: PM-21846 Returning `nil` temporarily until we add validation
100+
// given that the SDK expects non-expired token.
101+
return nil
102+
}
103+
}

0 commit comments

Comments
 (0)