diff --git a/SampleAppSwiftUI/Configs/AppStore.xcconfig b/SampleAppSwiftUI/Configs/AppStore.xcconfig index 901eb09..e322645 100644 --- a/SampleAppSwiftUI/Configs/AppStore.xcconfig +++ b/SampleAppSwiftUI/Configs/AppStore.xcconfig @@ -11,6 +11,6 @@ base_url = https:/$()/min-api.cryptocompare.com/data/ -webSocket_base_url = wss:/$()/streamer.cryptocompare.com/v2?api_key=%@ +webSocket_base_url = wss:/$()/streamer.cryptocompare.com/v2 personal_api = diff --git a/SampleAppSwiftUI/Configs/Development.xcconfig b/SampleAppSwiftUI/Configs/Development.xcconfig index 8f47c1b..ca04e8d 100644 --- a/SampleAppSwiftUI/Configs/Development.xcconfig +++ b/SampleAppSwiftUI/Configs/Development.xcconfig @@ -13,6 +13,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.adesso.SampleAppSwiftUI.development base_url = https:/$()/min-api.cryptocompare.com/data/ -webSocket_base_url = wss:/$()/streamer.cryptocompare.com/v2?api_key=%@ +webSocket_base_url = wss:/$()/streamer.cryptocompare.com/v2 personal_api = diff --git a/SampleAppSwiftUI/Configs/Production.xcconfig b/SampleAppSwiftUI/Configs/Production.xcconfig index c0f37a8..bc9d5d3 100644 --- a/SampleAppSwiftUI/Configs/Production.xcconfig +++ b/SampleAppSwiftUI/Configs/Production.xcconfig @@ -13,6 +13,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.adesso.SampleAppSwiftUI.prod base_url = https:/$()/min-api.cryptocompare.com/data/ -webSocket_base_url = wss:/$()/streamer.cryptocompare.com/v2?api_key=%@ +webSocket_base_url = wss:/$()/streamer.cryptocompare.com/v2 personal_api = diff --git a/SampleAppSwiftUI/Network/WebSocket/WebSocketEndpoint.swift b/SampleAppSwiftUI/Network/WebSocket/WebSocketEndpoint.swift index bde842d..8afa565 100644 --- a/SampleAppSwiftUI/Network/WebSocket/WebSocketEndpoint.swift +++ b/SampleAppSwiftUI/Network/WebSocket/WebSocketEndpoint.swift @@ -18,7 +18,7 @@ enum WebSocketEndpoint: TargetEndpointProtocol { var path: String { switch self { case .baseCoinApi: - return String(format: Constants.webSocketEndpoint, Constants.apiKey) + return Constants.webSocketEndpoint } } } diff --git a/SampleAppSwiftUI/Network/WebSocket/WebSocketProvider.swift b/SampleAppSwiftUI/Network/WebSocket/WebSocketProvider.swift index 51e5586..ed70b08 100644 --- a/SampleAppSwiftUI/Network/WebSocket/WebSocketProvider.swift +++ b/SampleAppSwiftUI/Network/WebSocket/WebSocketProvider.swift @@ -15,7 +15,9 @@ class WebSocketProvider: NSObject { init? (endPoint: TargetEndpointProtocol = WebSocketEndpoint.baseCoinApi, session: URLSession = URLSession.shared ) { guard let url = URL(string: WebSocketEndpoint.baseCoinApi.path) else { return nil } - self.socket = WebSocketStream(url: url, + let query = URLQueryItem(name: "api_key", value: Configuration.coinApiKey) + let finalURL = url.appending(queryItems: [query]) + self.socket = WebSocketStream(url: finalURL, session: session) } } diff --git a/SampleAppSwiftUI/Network/WebSocket/WebSocketSubscription.swift b/SampleAppSwiftUI/Network/WebSocket/WebSocketSubscription.swift index becc953..7a16c7f 100644 --- a/SampleAppSwiftUI/Network/WebSocket/WebSocketSubscription.swift +++ b/SampleAppSwiftUI/Network/WebSocket/WebSocketSubscription.swift @@ -42,7 +42,7 @@ class WebSocketSubscription: Subscription where S.Input == URLSes _ = subscriber.receive(message) } } catch { - debugPrint("Someting went wrong") + debugPrint("Something went wrong") } } } diff --git a/SampleAppSwiftUI/Resources/Constants/URLs.swift b/SampleAppSwiftUI/Resources/Constants/URLs.swift index 48c001a..dddcb40 100644 --- a/SampleAppSwiftUI/Resources/Constants/URLs.swift +++ b/SampleAppSwiftUI/Resources/Constants/URLs.swift @@ -9,11 +9,12 @@ import Foundation enum URLs { enum Icons { - static let baseURL = "https://assets.coincap.io/assets/icons/" + static let baseURL = "https://assets.coincap.io" + static let iconPath = "/assets/icons/" static let scaleURL = "@2x.png" static func getURL(from coinCode: CoinCode) -> URL? { - URL(string: "\(baseURL)\(coinCode.lowercased())\(scaleURL)") + URL(string: "\(baseURL)\(iconPath)\(coinCode.lowercased())\(scaleURL)") } } } diff --git a/SampleAppSwiftUI/Scenes/Favorites/FavoritesViewModel.swift b/SampleAppSwiftUI/Scenes/Favorites/FavoritesViewModel.swift index 1e326e1..96c07ec 100644 --- a/SampleAppSwiftUI/Scenes/Favorites/FavoritesViewModel.swift +++ b/SampleAppSwiftUI/Scenes/Favorites/FavoritesViewModel.swift @@ -41,10 +41,12 @@ class FavoritesViewModel: ObservableObject { } func fetchFavorites() { - DispatchQueue.main.async { - self.isLoading = false - self.getFavoriteCoinList() - self.startSocketConnection() + if Configuration.coinApiKey.isNotEmpty { + DispatchQueue.main.async { + self.isLoading = false + self.getFavoriteCoinList() + self.startSocketConnection() + } } } diff --git a/SampleAppSwiftUI/Utility/Extensions/ArrayExtensions.swift b/SampleAppSwiftUI/Utility/Extensions/ArrayExtensions.swift index c7d245f..9aaa33a 100644 --- a/SampleAppSwiftUI/Utility/Extensions/ArrayExtensions.swift +++ b/SampleAppSwiftUI/Utility/Extensions/ArrayExtensions.swift @@ -25,4 +25,8 @@ extension Array: RawRepresentable where Element: Codable { } return result } + + public var isNotEmpty: Bool { + !self.isEmpty + } } diff --git a/SampleAppSwiftUI/Utility/Extensions/StringExtensions.swift b/SampleAppSwiftUI/Utility/Extensions/StringExtensions.swift index 32a2a4e..b6f5802 100644 --- a/SampleAppSwiftUI/Utility/Extensions/StringExtensions.swift +++ b/SampleAppSwiftUI/Utility/Extensions/StringExtensions.swift @@ -24,4 +24,8 @@ extension String { static var empty: Self { "" } + + public var isNotEmpty: Bool { + !self.isEmpty + } }