|
@@ -24,6 +24,7 @@
|
|
|
import UIKit
|
|
|
import SVGKit
|
|
|
import NextcloudKit
|
|
|
+import RealmSwift
|
|
|
|
|
|
class NCService: NSObject {
|
|
|
@objc static let shared: NCService = {
|
|
@@ -316,44 +317,41 @@ class NCService: NSObject {
|
|
|
|
|
|
// MARK: -
|
|
|
|
|
|
- //let problems = "{\"problems\":{\"conflict\":{\"count\":3,\"oldest\":1695592800},\"failed-upload\":{\"count\":1,\"oldest\":1695592900}}}"
|
|
|
-
|
|
|
func sendClientDiagnosticsRemoteOperation(account: String) {
|
|
|
|
|
|
struct Problem: Codable {
|
|
|
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 {
|
|
|
NCManageDatabase.shared.clearErrorCodeMetadatas(metadatas: metadatas)
|
|
|
}
|
|
|
}
|
|
|
- */
|
|
|
+ } catch {
|
|
|
+ print("Error: \(error.localizedDescription)")
|
|
|
}
|
|
|
}
|
|
|
}
|