@@ -76,16 +76,6 @@ extension NCManageDatabase {
7676 }
7777 }
7878
79- func addDirectory( directory: tableDirectory , metadata: tableMetadata ) {
80- directory. account = metadata. account
81- directory. e2eEncrypted = metadata. e2eEncrypted
82- directory. favorite = metadata. favorite
83- directory. fileId = metadata. fileId
84- directory. ocId = metadata. ocId
85- directory. permissions = metadata. permissions
86- directory. richWorkspace = metadata. richWorkspace
87- }
88-
8979 func deleteDirectoryAndSubDirectory( serverUrl: String , account: String ) {
9080#if !EXTENSION
9181 DispatchQueue . main. async {
@@ -101,11 +91,15 @@ extension NCManageDatabase {
10191 do {
10292 let realm = try Realm ( )
10393 let results = realm. objects ( tableDirectory. self) . filter ( " account == %@ AND serverUrl BEGINSWITH %@ " , account, serverUrl)
104- for result in results {
105- self . deleteMetadata ( predicate: NSPredicate ( format: " account == %@ AND serverUrl == %@ " , result. account, result. serverUrl) )
106- self . deleteLocalFileOcId ( result. ocId)
107- }
10894 try realm. write {
95+ for result in results {
96+ let metadatas = realm. objects ( tableMetadata. self) . filter ( " account == %@ AND serverUrl == %@ " , account, result. serverUrl)
97+ for metadata in metadatas {
98+ let localFile = realm. objects ( tableLocalFile. self) . filter ( " ocId == %@ " , metadata. ocId)
99+ realm. delete ( localFile)
100+ }
101+ realm. delete ( metadatas)
102+ }
109103 realm. delete ( results)
110104 }
111105 } catch let error {
@@ -216,9 +210,17 @@ extension NCManageDatabase {
216210 result. offline = offline
217211 } else {
218212 let directory = tableDirectory ( )
213+
214+ directory. account = metadata. account
219215 directory. serverUrl = serverUrl
220216 directory. offline = offline
221- addDirectory ( directory: directory, metadata: metadata)
217+ directory. e2eEncrypted = metadata. e2eEncrypted
218+ directory. favorite = metadata. favorite
219+ directory. fileId = metadata. fileId
220+ directory. ocId = metadata. ocId
221+ directory. permissions = metadata. permissions
222+ directory. richWorkspace = metadata. richWorkspace
223+
222224 realm. add ( directory, update: . all)
223225 }
224226 }
@@ -239,8 +241,7 @@ extension NCManageDatabase {
239241 }
240242 }
241243
242- @discardableResult
243- func setDirectory( serverUrl: String , richWorkspace: String ? , account: String ) -> tableDirectory ? {
244+ func updateDirectoryRichWorkspace( _ richWorkspace: String ? , account: String , serverUrl: String ) {
244245 var result : tableDirectory ?
245246
246247 do {
@@ -252,25 +253,27 @@ extension NCManageDatabase {
252253 } catch let error {
253254 NextcloudKit . shared. nkCommonInstance. writeLog ( " [ERROR] Could not write to database: \( error) " )
254255 }
255-
256- if let result = result {
257- return tableDirectory. init ( value: result)
258- } else {
259- return nil
260- }
261256 }
262257
263- func setDirectory ( serverUrl : String , colorFolder: String ? , metadata: tableMetadata ) {
258+ func updateDirectoryColorFolder ( _ colorFolder: String ? , metadata: tableMetadata , serverUrl : String ) {
264259 do {
265260 let realm = try Realm ( )
266261 try realm. write {
267262 if let result = realm. objects ( tableDirectory. self) . filter ( " account == %@ AND serverUrl == %@ " , metadata. account, serverUrl) . first {
268263 result. colorFolder = colorFolder
269264 } else {
270265 let directory = tableDirectory ( )
266+
267+ directory. account = metadata. account
271268 directory. serverUrl = serverUrl
272269 directory. colorFolder = colorFolder
273- addDirectory ( directory: directory, metadata: metadata)
270+ directory. e2eEncrypted = metadata. e2eEncrypted
271+ directory. favorite = metadata. favorite
272+ directory. fileId = metadata. fileId
273+ directory. ocId = metadata. ocId
274+ directory. permissions = metadata. permissions
275+ directory. richWorkspace = metadata. richWorkspace
276+
274277 realm. add ( directory)
275278 }
276279 }
0 commit comments