Browse Source

improved code

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Marino Faggiana 2 years ago
parent
commit
323e9f4c62

+ 1 - 0
.swiftlint.yml

@@ -78,6 +78,7 @@ excluded:
   - iOSClient/Data/NCManageDatabase.swift
   - iOSClient/Data/NCManageDatabase+Metadata.swift
   - iOSClient/Data/NCManageDatabase+Directory.swift
+  - iOSClient/Data/NCManageDatabase+Share.swift
   - iOSClient/Data/NCManageDatabase+Video.swift
   - iOSClient/Data/NCManageDatabase+LayoutForView.swift
   - iOSClient/Data/NCManageDatabase+DashboardWidget.swift

+ 14 - 0
Nextcloud.xcodeproj/project.pbxproj

@@ -213,6 +213,12 @@
 		F746EC52273906C40052598D /* NCViewCertificateDetails.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F7BC287D26663F6C004D46C5 /* NCViewCertificateDetails.storyboard */; };
 		F746EC53273906C50052598D /* NCViewCertificateDetails.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F7BC287D26663F6C004D46C5 /* NCViewCertificateDetails.storyboard */; };
 		F747BA1F22354D2000971601 /* NCCreateFormUploadVoiceNote.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F747BA1E22354D2000971601 /* NCCreateFormUploadVoiceNote.storyboard */; };
+		F749B64A297B0CBB00087535 /* NCManageDatabase+Share.swift in Sources */ = {isa = PBXBuildFile; fileRef = F749B649297B0CBB00087535 /* NCManageDatabase+Share.swift */; };
+		F749B64B297B0CBB00087535 /* NCManageDatabase+Share.swift in Sources */ = {isa = PBXBuildFile; fileRef = F749B649297B0CBB00087535 /* NCManageDatabase+Share.swift */; };
+		F749B64C297B0CBB00087535 /* NCManageDatabase+Share.swift in Sources */ = {isa = PBXBuildFile; fileRef = F749B649297B0CBB00087535 /* NCManageDatabase+Share.swift */; };
+		F749B64D297B0CBB00087535 /* NCManageDatabase+Share.swift in Sources */ = {isa = PBXBuildFile; fileRef = F749B649297B0CBB00087535 /* NCManageDatabase+Share.swift */; };
+		F749B64E297B0CBB00087535 /* NCManageDatabase+Share.swift in Sources */ = {isa = PBXBuildFile; fileRef = F749B649297B0CBB00087535 /* NCManageDatabase+Share.swift */; };
+		F749B64F297B0CBB00087535 /* NCManageDatabase+Share.swift in Sources */ = {isa = PBXBuildFile; fileRef = F749B649297B0CBB00087535 /* NCManageDatabase+Share.swift */; };
 		F749C10B23C4A5340027D966 /* NCIntroCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F749C10723C4A5330027D966 /* NCIntroCollectionViewCell.swift */; };
 		F749C10C23C4A5340027D966 /* NCIntroViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F749C10823C4A5330027D966 /* NCIntroViewController.swift */; };
 		F749C10D23C4A5340027D966 /* NCIntro.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F749C10923C4A5330027D966 /* NCIntro.storyboard */; };
@@ -836,6 +842,7 @@
 		F747BA1E22354D2000971601 /* NCCreateFormUploadVoiceNote.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = NCCreateFormUploadVoiceNote.storyboard; sourceTree = "<group>"; };
 		F7496B81208F5651004B299C /* iOSClient.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = iOSClient.plist; sourceTree = "<group>"; };
 		F7496B83208F5652004B299C /* Share.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Share.plist; sourceTree = "<group>"; };
+		F749B649297B0CBB00087535 /* NCManageDatabase+Share.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NCManageDatabase+Share.swift"; sourceTree = "<group>"; };
 		F749C10723C4A5330027D966 /* NCIntroCollectionViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NCIntroCollectionViewCell.swift; sourceTree = "<group>"; };
 		F749C10823C4A5330027D966 /* NCIntroViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NCIntroViewController.swift; sourceTree = "<group>"; };
 		F749C10923C4A5330027D966 /* NCIntro.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = NCIntro.storyboard; sourceTree = "<group>"; };
@@ -1887,6 +1894,7 @@
 				F7BAADB41ED5A87C00B7EAD4 /* NCDatabase.swift */,
 				F7BAADB51ED5A87C00B7EAD4 /* NCManageDatabase.swift */,
 				AF4BF61D27562B3F0081CEEF /* NCManageDatabase+Activity.swift */,
+				F749B649297B0CBB00087535 /* NCManageDatabase+Share.swift */,
 				AF4BF613275629E20081CEEF /* NCManageDatabase+Account.swift */,
 				F7D68FCB28CB9051009139F3 /* NCManageDatabase+DashboardWidget.swift */,
 				F78A10BE29322E8A008499B8 /* NCManageDatabase+Directory.swift */,
@@ -2870,6 +2878,7 @@
 				2C33C48223E2C475005F963B /* NotificationService.swift in Sources */,
 				AF4BF617275629E20081CEEF /* NCManageDatabase+Account.swift in Sources */,
 				F7BF9D872934CA21009EE9A6 /* NCManageDatabase+LayoutForView.swift in Sources */,
+				F749B64F297B0CBB00087535 /* NCManageDatabase+Share.swift in Sources */,
 				D575039F27146F93008DC9DC /* String+Extension.swift in Sources */,
 				F769CA1A2966EA3C00039397 /* ComponentView.swift in Sources */,
 				F73D5E4A246DE09200DF6467 /* NCElementsJSON.swift in Sources */,
@@ -2938,6 +2947,7 @@
 				F71459D21D12E3B700CAFEEC /* CCUtility.m in Sources */,
 				F75A9EE723796C6F0044CFCE /* NCNetworking.swift in Sources */,
 				AF730AFA27843E4C00B7520E /* NCShareExtension+NCDelegate.swift in Sources */,
+				F749B64D297B0CBB00087535 /* NCManageDatabase+Share.swift in Sources */,
 				F7EDE4E0262D7BAF00414FE6 /* NCGridCell.swift in Sources */,
 				F7A76DC8256A71CD00119AB3 /* UIImage+Extension.swift in Sources */,
 				F7B8CD96261AF401007C1359 /* NCNetworkingChunkedUpload.swift in Sources */,
@@ -2977,6 +2987,7 @@
 				F72EA95A28B7BD0D00C88F0C /* FilesWidgetView.swift in Sources */,
 				F78302FE28B4C44700B84583 /* NCBrand.swift in Sources */,
 				F793E5A028B7651B005E4B02 /* NCViewCertificateDetails.swift in Sources */,
+				F749B64B297B0CBB00087535 /* NCManageDatabase+Share.swift in Sources */,
 				F793E59F28B764F6005E4B02 /* NCContentPresenter.swift in Sources */,
 				F76DEE9828F808AF0041B1C9 /* LockscreenWidgetProvider.swift in Sources */,
 				F78A10C029322E8A008499B8 /* NCManageDatabase+Directory.swift in Sources */,
@@ -3032,6 +3043,7 @@
 				F7E98C1827E0D0FC001F9F19 /* NCManageDatabase+Video.swift in Sources */,
 				F785EEA42461A4A600B3F945 /* NCUtility.swift in Sources */,
 				F79B646226CA661600838ACA /* UIControl+Extension.swift in Sources */,
+				F749B64E297B0CBB00087535 /* NCManageDatabase+Share.swift in Sources */,
 				AF817EF3274BC781009ED85B /* NCUserBaseUrl.swift in Sources */,
 				F771E3F320E239A600AFB62D /* FileProviderData.swift in Sources */,
 				F7B8CD9B261AF401007C1359 /* NCNetworkingChunkedUpload.swift in Sources */,
@@ -3206,6 +3218,7 @@
 				F745B253222D88AE00346520 /* NCLoginQRCode.swift in Sources */,
 				F7CBC31C24F78E79004D3812 /* NCSortMenu.swift in Sources */,
 				F769454822E9F20D000A798A /* NCShareNetworking.swift in Sources */,
+				F749B64A297B0CBB00087535 /* NCManageDatabase+Share.swift in Sources */,
 				F7C9555521F0C5470024296E /* NCActivity.swift in Sources */,
 				F7725A60251F33BB00D125E0 /* NCFiles.swift in Sources */,
 				F704B5E52430AA8000632F5F /* NCCreateFormUploadConflict.swift in Sources */,
@@ -3245,6 +3258,7 @@
 				F7A8D73D28F181D3008BBE1C /* NCUtilityFileSystem.swift in Sources */,
 				F7A8D74528F1828E008BBE1C /* CCUtility.m in Sources */,
 				F75DD767290ABB25002EB562 /* Intent.intentdefinition in Sources */,
+				F749B64C297B0CBB00087535 /* NCManageDatabase+Share.swift in Sources */,
 				F7A8D73F28F181EF008BBE1C /* NCGlobal.swift in Sources */,
 				F7A8D74328F1826F008BBE1C /* String+Extension.swift in Sources */,
 				F7A8D73728F17E1E008BBE1C /* NCManageDatabase+Account.swift in Sources */,

+ 0 - 48
iOSClient/Data/NCDatabase.swift

@@ -196,54 +196,6 @@ class tablePhotoLibrary: Object {
     }
 }
 
-typealias tableShare = tableShareV2
-class tableShareV2: Object {
-
-    @objc dynamic var account = ""
-    @objc dynamic var canEdit: Bool = false
-    @objc dynamic var canDelete: Bool = false
-    @objc dynamic var date: NSDate?
-    @objc dynamic var displaynameFileOwner = ""
-    @objc dynamic var displaynameOwner = ""
-    @objc dynamic var expirationDate: NSDate?
-    @objc dynamic var fileName = ""
-    @objc dynamic var fileParent: Int = 0
-    @objc dynamic var fileSource: Int = 0
-    @objc dynamic var fileTarget = ""
-    @objc dynamic var hideDownload: Bool = false
-    @objc dynamic var idShare: Int = 0
-    @objc dynamic var itemSource: Int = 0
-    @objc dynamic var itemType = ""
-    @objc dynamic var label = ""
-    @objc dynamic var mailSend: Bool = false
-    @objc dynamic var mimeType = ""
-    @objc dynamic var note = ""
-    @objc dynamic var parent: String = ""
-    @objc dynamic var password: String = ""
-    @objc dynamic var path = ""
-    @objc dynamic var permissions: Int = 0
-    @objc dynamic var primaryKey = ""
-    @objc dynamic var sendPasswordByTalk: Bool = false
-    @objc dynamic var serverUrl = ""
-    @objc dynamic var shareType: Int = 0
-    @objc dynamic var shareWith = ""
-    @objc dynamic var shareWithDisplayname = ""
-    @objc dynamic var storage: Int = 0
-    @objc dynamic var storageId = ""
-    @objc dynamic var token = ""
-    @objc dynamic var uidFileOwner = ""
-    @objc dynamic var uidOwner = ""
-    @objc dynamic var url = ""
-    @objc dynamic var userClearAt: NSDate?
-    @objc dynamic var userIcon = ""
-    @objc dynamic var userMessage = ""
-    @objc dynamic var userStatus = ""
-
-    override static func primaryKey() -> String {
-        return "primaryKey"
-    }
-}
-
 class tableTag: Object {
 
     @objc dynamic var account = ""

+ 233 - 0
iOSClient/Data/NCManageDatabase+Share.swift

@@ -0,0 +1,233 @@
+//
+//  NCManageDatabase+Share.swift
+//  Nextcloud
+//
+//  Created by Marino Faggiana on 20/01/23.
+//  Copyright © 2023 Marino Faggiana. All rights reserved.
+//
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
+//
+//  This program is free software: you can redistribute it and/or modify
+//  it under the terms of the GNU General Public License as published by
+//  the Free Software Foundation, either version 3 of the License, or
+//  (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU General Public License
+//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+//
+
+import Foundation
+import RealmSwift
+import NextcloudKit
+
+typealias tableShare = tableShareV2
+class tableShareV2: Object {
+
+    @objc dynamic var account = ""
+    @objc dynamic var canEdit: Bool = false
+    @objc dynamic var canDelete: Bool = false
+    @objc dynamic var date: NSDate?
+    @objc dynamic var displaynameFileOwner = ""
+    @objc dynamic var displaynameOwner = ""
+    @objc dynamic var expirationDate: NSDate?
+    @objc dynamic var fileName = ""
+    @objc dynamic var fileParent: Int = 0
+    @objc dynamic var fileSource: Int = 0
+    @objc dynamic var fileTarget = ""
+    @objc dynamic var hideDownload: Bool = false
+    @objc dynamic var idShare: Int = 0
+    @objc dynamic var itemSource: Int = 0
+    @objc dynamic var itemType = ""
+    @objc dynamic var label = ""
+    @objc dynamic var mailSend: Bool = false
+    @objc dynamic var mimeType = ""
+    @objc dynamic var note = ""
+    @objc dynamic var parent: String = ""
+    @objc dynamic var password: String = ""
+    @objc dynamic var path = ""
+    @objc dynamic var permissions: Int = 0
+    @objc dynamic var primaryKey = ""
+    @objc dynamic var sendPasswordByTalk: Bool = false
+    @objc dynamic var serverUrl = ""
+    @objc dynamic var shareType: Int = 0
+    @objc dynamic var shareWith = ""
+    @objc dynamic var shareWithDisplayname = ""
+    @objc dynamic var storage: Int = 0
+    @objc dynamic var storageId = ""
+    @objc dynamic var token = ""
+    @objc dynamic var uidFileOwner = ""
+    @objc dynamic var uidOwner = ""
+    @objc dynamic var url = ""
+    @objc dynamic var userClearAt: NSDate?
+    @objc dynamic var userIcon = ""
+    @objc dynamic var userMessage = ""
+    @objc dynamic var userStatus = ""
+
+    override static func primaryKey() -> String {
+        return "primaryKey"
+    }
+}
+
+extension NCManageDatabase {
+
+    func addShare(account: String, home: String, shares: [NKShare]) {
+
+        let realm = try! Realm()
+
+        do {
+            try realm.write {
+
+                for share in shares {
+
+                    let serverUrlPath = home + share.path
+                    guard let serverUrl = NCUtilityFileSystem.shared.deleteLastPath(serverUrlPath: serverUrlPath, home: home) else {
+                        continue
+                    }
+
+                    let object = tableShare()
+
+                    object.account = account
+                    if let fileName = share.path.components(separatedBy: "/").last {
+                        object.fileName = fileName
+                    }
+                    object.serverUrl = serverUrl
+
+                    object.canEdit = share.canEdit
+                    object.canDelete = share.canDelete
+                    object.date = share.date
+                    object.displaynameFileOwner = share.displaynameFileOwner
+                    object.displaynameOwner = share.displaynameOwner
+                    object.expirationDate = share.expirationDate
+                    object.fileParent = share.fileParent
+                    object.fileSource = share.fileSource
+                    object.fileTarget = share.fileTarget
+                    object.hideDownload = share.hideDownload
+                    object.idShare = share.idShare
+                    object.itemSource = share.itemSource
+                    object.itemType = share.itemType
+                    object.label = share.label
+                    object.mailSend = share.mailSend
+                    object.mimeType = share.mimeType
+                    object.note = share.note
+                    object.parent = share.parent
+                    object.password = share.password
+                    object.path = share.path
+                    object.permissions = share.permissions
+                    object.primaryKey = account + " " + String(share.idShare)
+                    object.sendPasswordByTalk = share.sendPasswordByTalk
+                    object.shareType = share.shareType
+                    object.shareWith = share.shareWith
+                    object.shareWithDisplayname = share.shareWithDisplayname
+                    object.storage = share.storage
+                    object.storageId = share.storageId
+                    object.token = share.token
+                    object.uidOwner = share.uidOwner
+                    object.uidFileOwner = share.uidFileOwner
+                    object.url = share.url
+                    object.userClearAt = share.userClearAt
+                    object.userIcon = share.userIcon
+                    object.userMessage = share.userMessage
+                    object.userStatus = share.userStatus
+
+                    realm.add(object, update: .all)
+                }
+            }
+        } catch let error {
+            NKCommon.shared.writeLog("Could not write to database: \(error)")
+        }
+    }
+
+    func getTableShares(account: String) -> [tableShare] {
+
+        let realm = try! Realm()
+
+        let sortProperties = [SortDescriptor(keyPath: "shareType", ascending: false), SortDescriptor(keyPath: "idShare", ascending: false)]
+        let results = realm.objects(tableShare.self).filter("account == %@", account).sorted(by: sortProperties)
+
+        return Array(results.map { tableShare.init(value: $0) })
+    }
+
+    func getTableShares(metadata: tableMetadata) -> (firstShareLink: tableShare?, share: [tableShare]?) {
+
+        let realm = try! Realm()
+
+        let sortProperties = [SortDescriptor(keyPath: "shareType", ascending: false), SortDescriptor(keyPath: "idShare", ascending: false)]
+        let firstShareLink = realm.objects(tableShare.self).filter("account == %@ AND serverUrl == %@ AND fileName == %@ AND shareType == 3", metadata.account, metadata.serverUrl, metadata.fileName).first
+
+        if let firstShareLink = firstShareLink {
+            let results = realm.objects(tableShare.self).filter("account == %@ AND serverUrl == %@ AND fileName == %@ AND idShare != %d", metadata.account, metadata.serverUrl, metadata.fileName, firstShareLink.idShare).sorted(by: sortProperties)
+            return(firstShareLink: tableShare.init(value: firstShareLink), share: Array(results.map { tableShare.init(value: $0) }))
+        } else {
+            let results = realm.objects(tableShare.self).filter("account == %@ AND serverUrl == %@ AND fileName == %@", metadata.account, metadata.serverUrl, metadata.fileName).sorted(by: sortProperties)
+            return(firstShareLink: firstShareLink, share: Array(results.map { tableShare.init(value: $0) }))
+        }
+    }
+
+    func getTableShare(account: String, idShare: Int) -> tableShare? {
+
+        let realm = try! Realm()
+
+        guard let result = realm.objects(tableShare.self).filter("account = %@ AND idShare = %d", account, idShare).first else {
+            return nil
+        }
+
+        return tableShare.init(value: result)
+    }
+
+    func getTableShares(account: String, serverUrl: String) -> [tableShare] {
+
+        let realm = try! Realm()
+
+        let sortProperties = [SortDescriptor(keyPath: "shareType", ascending: false), SortDescriptor(keyPath: "idShare", ascending: false)]
+        let results = realm.objects(tableShare.self).filter("account == %@ AND serverUrl == %@", account, serverUrl).sorted(by: sortProperties)
+
+        return Array(results.map { tableShare.init(value: $0) })
+    }
+
+    func getTableShares(account: String, serverUrl: String, fileName: String) -> [tableShare] {
+
+        let realm = try! Realm()
+
+        let sortProperties = [SortDescriptor(keyPath: "shareType", ascending: false), SortDescriptor(keyPath: "idShare", ascending: false)]
+        let results = realm.objects(tableShare.self).filter("account == %@ AND serverUrl == %@ AND fileName == %@", account, serverUrl, fileName).sorted(by: sortProperties)
+
+        return Array(results.map { tableShare.init(value: $0) })
+    }
+
+    func deleteTableShare(account: String, idShare: Int) {
+
+        let realm = try! Realm()
+
+        realm.beginWrite()
+
+        let result = realm.objects(tableShare.self).filter("account == %@ AND idShare == %d", account, idShare)
+        realm.delete(result)
+
+        do {
+            try realm.commitWrite()
+        } catch let error {
+            NKCommon.shared.writeLog("Could not write to database: \(error)")
+        }
+    }
+
+    func deleteTableShare(account: String) {
+
+        let realm = try! Realm()
+
+        realm.beginWrite()
+
+        let result = realm.objects(tableShare.self).filter("account == %@", account)
+        realm.delete(result)
+
+        do {
+            try realm.commitWrite()
+        } catch let error {
+            NKCommon.shared.writeLog("Could not write to database: \(error)")
+        }
+    }
+}

+ 1 - 156
iOSClient/Data/NCManageDatabase.swift

@@ -1101,162 +1101,7 @@ class NCManageDatabase: NSObject {
     // MARK: -
     // MARK: Table Share
 
-    @objc func addShare(account: String, home: String, shares: [NKShare]) {
-
-        let realm = try! Realm()
-
-        do {
-            try realm.write {
-
-                for share in shares {
-
-                    let serverUrlPath = home + share.path
-                    guard let serverUrl = NCUtilityFileSystem.shared.deleteLastPath(serverUrlPath: serverUrlPath, home: home) else {
-                        continue
-                    }
-
-                    let object = tableShare()
-
-                    object.account = account
-                    if let fileName = share.path.components(separatedBy: "/").last {
-                        object.fileName = fileName
-                    }
-                    object.serverUrl = serverUrl
-
-                    object.canEdit = share.canEdit
-                    object.canDelete = share.canDelete
-                    object.date = share.date
-                    object.displaynameFileOwner = share.displaynameFileOwner
-                    object.displaynameOwner = share.displaynameOwner
-                    object.expirationDate = share.expirationDate
-                    object.fileParent = share.fileParent
-                    object.fileSource = share.fileSource
-                    object.fileTarget = share.fileTarget
-                    object.hideDownload = share.hideDownload
-                    object.idShare = share.idShare
-                    object.itemSource = share.itemSource
-                    object.itemType = share.itemType
-                    object.label = share.label
-                    object.mailSend = share.mailSend
-                    object.mimeType = share.mimeType
-                    object.note = share.note
-                    object.parent = share.parent
-                    object.password = share.password
-                    object.path = share.path
-                    object.permissions = share.permissions
-                    object.primaryKey = account + " " + String(share.idShare)
-                    object.sendPasswordByTalk = share.sendPasswordByTalk
-                    object.shareType = share.shareType
-                    object.shareWith = share.shareWith
-                    object.shareWithDisplayname = share.shareWithDisplayname
-                    object.storage = share.storage
-                    object.storageId = share.storageId
-                    object.token = share.token
-                    object.uidOwner = share.uidOwner
-                    object.uidFileOwner = share.uidFileOwner
-                    object.url = share.url
-                    object.userClearAt = share.userClearAt
-                    object.userIcon = share.userIcon
-                    object.userMessage = share.userMessage
-                    object.userStatus = share.userStatus
-
-                    realm.add(object, update: .all)
-                }
-            }
-        } catch let error {
-            NKCommon.shared.writeLog("Could not write to database: \(error)")
-        }
-    }
-
-    @objc func getTableShares(account: String) -> [tableShare] {
-
-        let realm = try! Realm()
-
-        let sortProperties = [SortDescriptor(keyPath: "shareType", ascending: false), SortDescriptor(keyPath: "idShare", ascending: false)]
-        let results = realm.objects(tableShare.self).filter("account == %@", account).sorted(by: sortProperties)
-
-        return Array(results.map { tableShare.init(value: $0) })
-    }
-
-    func getTableShares(metadata: tableMetadata) -> (firstShareLink: tableShare?, share: [tableShare]?) {
-
-        let realm = try! Realm()
-
-        let sortProperties = [SortDescriptor(keyPath: "shareType", ascending: false), SortDescriptor(keyPath: "idShare", ascending: false)]
-        let firstShareLink = realm.objects(tableShare.self).filter("account == %@ AND serverUrl == %@ AND fileName == %@ AND shareType == 3", metadata.account, metadata.serverUrl, metadata.fileName).first
-
-        if let firstShareLink = firstShareLink {
-            let results = realm.objects(tableShare.self).filter("account == %@ AND serverUrl == %@ AND fileName == %@ AND idShare != %d", metadata.account, metadata.serverUrl, metadata.fileName, firstShareLink.idShare).sorted(by: sortProperties)
-            return(firstShareLink: tableShare.init(value: firstShareLink), share: Array(results.map { tableShare.init(value: $0) }))
-        } else {
-            let results = realm.objects(tableShare.self).filter("account == %@ AND serverUrl == %@ AND fileName == %@", metadata.account, metadata.serverUrl, metadata.fileName).sorted(by: sortProperties)
-            return(firstShareLink: firstShareLink, share: Array(results.map { tableShare.init(value: $0) }))
-        }
-    }
-
-    func getTableShare(account: String, idShare: Int) -> tableShare? {
-
-        let realm = try! Realm()
-
-        guard let result = realm.objects(tableShare.self).filter("account = %@ AND idShare = %d", account, idShare).first else {
-            return nil
-        }
-
-        return tableShare.init(value: result)
-    }
-
-    @objc func getTableShares(account: String, serverUrl: String) -> [tableShare] {
-
-        let realm = try! Realm()
-
-        let sortProperties = [SortDescriptor(keyPath: "shareType", ascending: false), SortDescriptor(keyPath: "idShare", ascending: false)]
-        let results = realm.objects(tableShare.self).filter("account == %@ AND serverUrl == %@", account, serverUrl).sorted(by: sortProperties)
-
-        return Array(results.map { tableShare.init(value: $0) })
-    }
-
-    @objc func getTableShares(account: String, serverUrl: String, fileName: String) -> [tableShare] {
-
-        let realm = try! Realm()
-
-        let sortProperties = [SortDescriptor(keyPath: "shareType", ascending: false), SortDescriptor(keyPath: "idShare", ascending: false)]
-        let results = realm.objects(tableShare.self).filter("account == %@ AND serverUrl == %@ AND fileName == %@", account, serverUrl, fileName).sorted(by: sortProperties)
-
-        return Array(results.map { tableShare.init(value: $0) })
-    }
-
-    @objc func deleteTableShare(account: String, idShare: Int) {
-
-        let realm = try! Realm()
-
-        realm.beginWrite()
-
-        let result = realm.objects(tableShare.self).filter("account == %@ AND idShare == %d", account, idShare)
-        realm.delete(result)
-
-        do {
-            try realm.commitWrite()
-        } catch let error {
-            NKCommon.shared.writeLog("Could not write to database: \(error)")
-        }
-    }
-
-    @objc func deleteTableShare(account: String) {
-
-        let realm = try! Realm()
-
-        realm.beginWrite()
-
-        let result = realm.objects(tableShare.self).filter("account == %@", account)
-        realm.delete(result)
-
-        do {
-            try realm.commitWrite()
-        } catch let error {
-            NKCommon.shared.writeLog("Could not write to database: \(error)")
-        }
-    }
-
+    
     // MARK: -
     // MARK: Table Tag