Преглед на файлове

sendClientDiagnosticsRemoteOperation

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Marino Faggiana преди 1 година
родител
ревизия
d977504ee6
променени са 1 файла, в които са добавени 22 реда и са изтрити 24 реда
  1. 22 24
      iOSClient/Networking/NCService.swift

+ 22 - 24
iOSClient/Networking/NCService.swift

@@ -24,6 +24,7 @@
 import UIKit
 import UIKit
 import SVGKit
 import SVGKit
 import NextcloudKit
 import NextcloudKit
+import RealmSwift
 
 
 class NCService: NSObject {
 class NCService: NSObject {
     @objc static let shared: NCService = {
     @objc static let shared: NCService = {
@@ -316,44 +317,41 @@ class NCService: NSObject {
 
 
     // MARK: -
     // MARK: -
 
 
-    //let problems = "{\"problems\":{\"conflict\":{\"count\":3,\"oldest\":1695592800},\"failed-upload\":{\"count\":1,\"oldest\":1695592900}}}"
-
     func sendClientDiagnosticsRemoteOperation(account: String) {
     func sendClientDiagnosticsRemoteOperation(account: String) {
 
 
         struct Problem: Codable {
         struct Problem: Codable {
             let count: Int
             let count: Int
-            let oldest: Double
+            let oldest: TimeInterval
         }
         }
-        var problems: [String: Problem] = [:]
 
 
-        if let metadatas = NCManageDatabase.shared.getMetadatasInError(account: account), !metadatas.isEmpty {
+        struct Problems: Codable {
+            var problems: [String: Problem] = [:]
+        }
 
 
-            for metadata in metadatas {
-                guard let oldest = metadata.errorCodeDate?.timeIntervalSince1970 else { continue }
-                var key = String(metadata.errorCode)
-                if !metadata.sessionError.isEmpty {
-                    key = key + " - " + metadata.sessionError
-                }
-                let value = Problem(count: metadata.errorCodeCounter, oldest: oldest)
-                problems[key] = value
-            }
+        var problems = Problems()
 
 
-            do {
-                let data = try JSONEncoder().encode(problems)
-                guard let json = String(data: data, encoding: .utf8) else { return }
-                let problems = "{\"problems\":" + json + "}"
-                print(problems)
-            } catch {
-                print("Error: \(error.localizedDescription)")
+        guard let metadatas = NCManageDatabase.shared.getMetadatasInError(account: account), !metadatas.isEmpty else { return }
+        for metadata in metadatas {
+            guard let oldest = metadata.errorCodeDate?.timeIntervalSince1970 else { continue }
+            var key = String(metadata.errorCode)
+            if !metadata.sessionError.isEmpty {
+                key = key + " - " + metadata.sessionError
             }
             }
+            let value = Problem(count: metadata.errorCodeCounter, oldest: oldest)
+            problems.problems[key] = value
+        }
 
 
-            /*
-            NextcloudKit.shared.sendClientDiagnosticsRemoteOperation(problems: problems) { _, error in
+        do {
+            @ThreadSafe var metadatas = metadatas
+            let data = try JSONEncoder().encode(problems)
+            data.printJson()
+            NextcloudKit.shared.sendClientDiagnosticsRemoteOperation(problems: data, options: NKRequestOptions(queue: NextcloudKit.shared.nkCommonInstance.backgroundQueue)) { _, error in
                 if error == .success {
                 if error == .success {
                     NCManageDatabase.shared.clearErrorCodeMetadatas(metadatas: metadatas)
                     NCManageDatabase.shared.clearErrorCodeMetadatas(metadatas: metadatas)
                 }
                 }
             }
             }
-            */
+        } catch {
+            print("Error: \(error.localizedDescription)")
         }
         }
     }
     }
 }
 }