Explorar el Código

Optional api secret

Ivan Valkou hace 5 años
padre
commit
68527a9a1c

+ 1 - 1
FreeAPS/Resources/Info.plist

@@ -17,7 +17,7 @@
 	<key>CFBundleShortVersionString</key>
 	<string>$(MARKETING_VERSION)</string>
 	<key>CFBundleVersion</key>
-	<string>233</string>
+	<string>234</string>
 	<key>LSApplicationQueriesSchemes</key>
 	<array>
 		<string>dexcomg6</string>

+ 1 - 1
FreeAPS/Sources/Modules/NightscoutConfig/NightscoutConfigDataFlow.swift

@@ -9,5 +9,5 @@ enum NightscoutConfig {
 }
 
 protocol NightscoutConfigProvider: Provider {
-    func checkConnection(url: URL, secret: String) -> AnyPublisher<Void, Error>
+    func checkConnection(url: URL, secret: String?) -> AnyPublisher<Void, Error>
 }

+ 1 - 1
FreeAPS/Sources/Modules/NightscoutConfig/NightscoutConfigProvider.swift

@@ -3,7 +3,7 @@ import Foundation
 
 extension NightscoutConfig {
     final class Provider: BaseProvider, NightscoutConfigProvider {
-        func checkConnection(url: URL, secret: String) -> AnyPublisher<Void, Error> {
+        func checkConnection(url: URL, secret: String?) -> AnyPublisher<Void, Error> {
             NightscoutAPI(url: url, secret: secret).checkConnection()
         }
     }

+ 1 - 1
FreeAPS/Sources/Modules/NightscoutConfig/NightscoutConfigViewModel.swift

@@ -48,7 +48,7 @@ extension NightscoutConfig {
             }
             connecting = true
             message = ""
-            provider.checkConnection(url: url, secret: secret)
+            provider.checkConnection(url: url, secret: secret.isEmpty ? nil : secret)
                 .receive(on: DispatchQueue.main)
                 .sink { completion in
                     switch completion {

+ 1 - 1
FreeAPS/Sources/Modules/NightscoutConfig/View/NightscoutConfigRootView.swift

@@ -37,7 +37,7 @@ extension NightscoutConfig {
 
                 Section {
                     Button("Connect") { viewModel.connect() }
-                        .disabled(viewModel.url.isEmpty || viewModel.secret.isEmpty || viewModel.connecting)
+                        .disabled(viewModel.url.isEmpty || viewModel.connecting)
                     Button("Delete") { viewModel.delete() }.foregroundColor(.red).disabled(viewModel.connecting)
                 }
 

+ 7 - 3
FreeAPS/Sources/Services/Network/NightscoutAPI.swift

@@ -36,12 +36,16 @@ extension NightscoutAPI {
         }
         let check = Check()
         var request = URLRequest(url: url.appendingPathComponent(Config.treatmentsPath))
-        request.httpMethod = "POST"
-        request.addValue("application/json", forHTTPHeaderField: "Content-Type")
+
         if let secret = secret {
+            request.addValue("application/json", forHTTPHeaderField: "Content-Type")
+            request.httpMethod = "POST"
             request.addValue(secret.sha1(), forHTTPHeaderField: "api-secret")
+            request.httpBody = try! JSONCoding.encoder.encode(check)
+        } else {
+            request.httpMethod = "GET"
         }
-        request.httpBody = try! JSONCoding.encoder.encode(check)
+
         return service.run(request)
             .map { _ in () }
             .eraseToAnyPublisher()