Эх сурвалжийг харах

coding

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Marino Faggiana 2 жил өмнө
parent
commit
042b3b0dd9

+ 4 - 1
iOSClient/AppDelegate.swift

@@ -646,7 +646,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
                 accounts.append(NKDataAccountFile(withUrl: account.urlBase, user: account.user, alias: alias))
             }
         }
-        return NKCommon.shared.createDataAccountFile(at: url, accounts: accounts)
+        let obj = NKAccountFile().putShareAccounts(at: url, app: "nextcloud", items: accounts)
+        return nil
+
+        // return NKCommon.shared.createDataAccountFile(at: url, accounts: accounts)
     }
 
     // MARK: - Account Request

+ 23 - 30
iOSClient/Networking/NCNetworking.swift

@@ -1561,24 +1561,7 @@ import Photos
 
 // MARK: - *** TEST ***
 
-extension NCNetworking {
-
-    @objc public class DataAccountFile: NSObject {
-
-        @objc public var url: String
-        @objc public var user: String
-        @objc public var alias: String?
-        @objc public var avatar: String?
-
-        @objc public init(withUrl url: String, user: String, alias: String? = nil, avatar: String? = nil) {
-            self.url = url
-            self.user = user
-            self.alias = alias
-            self.avatar = avatar
-        }
-    }
-
-    class NKAccountFile: NSObject {
+    public class NKAccountFile: NSObject {
 
         struct AccountData: Codable {
             let url: String
@@ -1593,11 +1576,11 @@ extension NCNetworking {
 
         let encoder = JSONEncoder()
 
-        func decoder(json: String) -> Accounts? {
-            guard let data = json.data(using: .utf8) else { return nil }
+        func decoder(at url: URL) -> Accounts? {
             let decoder = JSONDecoder()
 
             do {
+                let data = try Data(contentsOf: url)
                 data.printJson()
                 let json = try decoder.decode(Accounts.self, from: data)
                 return json
@@ -1606,34 +1589,44 @@ extension NCNetworking {
             }
         }
 
-        func encoder(app: String, items: [DataAccountFile]) -> String? {
+        func getShareAccount(at url: URL) {
+
+        }
+
+        func putShareAccounts(at url: URL, app: String, items: [NKDataAccountFile]) -> Error? {
 
             var itemAccount: [AccountData] = []
+            var apps: [String : [AccountData]] = [:]
 
             for item in items {
                 let account = AccountData(url: item.url, user: item.user, alias: item.alias, avatar: item.avatar)
                 itemAccount.append(account)
             }
+            apps[app] = itemAccount
+
+            if let accountsDecoder = decoder(at: url), let metadata = accountsDecoder.metadata {
+                let otherApps = metadata.filter({ $0.key != app })
+                apps.merge(otherApps){(current, _) in current}
+            }
+            let accounts = Accounts(metadata:apps)
 
-            let accounts = Accounts(metadata: [app:itemAccount])
 
+            /*
             do {
                 let data = try encoder.encode(accounts)
+                try data.write(to: url)
                 data.printJson()
-                let jsonString = String(data: data, encoding: .utf8)
-                return jsonString
             } catch let error {
-                return nil
+                return error
             }
+            */
+
+            return nil
         }
     }
 
-    func testEncoder(app: String, item:[DataAccountFile]) {
-
+    
 
-        
-    }
-}
 
 extension Array where Element == URLQueryItem {
     subscript(name: String) -> URLQueryItem? {