From 42598fa8095d285e6801303b6c8cf5f822864647 Mon Sep 17 00:00:00 2001 From: Rui Peres Date: Thu, 25 Aug 2022 20:45:51 +0100 Subject: [PATCH] Expose isConnectedToProvider --- .../Core/Client/Data Models/Patches/Provider.swift | 1 + Sources/VitalCore/Core/Client/VitalClient.swift | 14 ++++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Sources/VitalCore/Core/Client/Data Models/Patches/Provider.swift b/Sources/VitalCore/Core/Client/Data Models/Patches/Provider.swift index 9ad46f8..56a92bc 100644 --- a/Sources/VitalCore/Core/Client/Data Models/Patches/Provider.swift +++ b/Sources/VitalCore/Core/Client/Data Models/Patches/Provider.swift @@ -31,4 +31,5 @@ public enum Provider: String, Codable { case eightSleep = "eight_sleep" case withings = "withings" case googleFit = "google_fit" + case hammerhead = "hammerhead" } diff --git a/Sources/VitalCore/Core/Client/VitalClient.swift b/Sources/VitalCore/Core/Client/VitalClient.swift index d12696d..34c3588 100644 --- a/Sources/VitalCore/Core/Client/VitalClient.swift +++ b/Sources/VitalCore/Core/Client/VitalClient.swift @@ -235,7 +235,6 @@ public class VitalClient { await VitalClient.shared.userId.set(value: userId) - do { try shared.secureStorage.set(value: userId, key: user_secureStorageKey) } @@ -245,16 +244,23 @@ public class VitalClient { } } - public func checkConnectedSource(for provider: Provider) async throws { + public func isUserConnected(to provider: Provider) async throws -> Bool { let userId = await userId.get() let storage = await configuration.get().storage guard storage.isConnectedSourceStored(for: userId, with: provider) == false else { - return + return true } let connectedSources = try await self.user.userConnectedSources() - if connectedSources.contains(provider) == false { + return connectedSources.contains(provider) + } + + public func checkConnectedSource(for provider: Provider) async throws { + let userId = await userId.get() + let storage = await configuration.get().storage + + if try await isUserConnected(to: provider) == false { try await self.link.createConnectedSource(userId, provider: provider) }