Selaa lähdekoodia

new import document

marinofaggiana 5 vuotta sitten
vanhempi
commit
6d319851d0
1 muutettua tiedostoa jossa 38 lisäystä ja 46 poistoa
  1. 38 46
      File Provider Extension/FileProviderExtension+Actions.swift

+ 38 - 46
File Provider Extension/FileProviderExtension+Actions.swift

@@ -288,21 +288,18 @@ extension FileProviderExtension {
             autoreleasepool {
             
                 var size = 0 as Double
-                let metadata = tableMetadata()
                 var error: NSError?
             
                 guard let tableDirectory = fileProviderUtility.sharedInstance.getTableDirectoryFromParentItemIdentifier(parentItemIdentifier, account: fileProviderData.sharedInstance.account, homeServerUrl: fileProviderData.sharedInstance.homeServerUrl) else {
                     completionHandler(nil, NSFileProviderError(.noSuchItem))
                     return
                 }
-            
-                // --------------------------------------------- Copy file here with security access
-            
+                
                 if fileURL.startAccessingSecurityScopedResource() == false {
                     completionHandler(nil, NSFileProviderError(.noSuchItem))
                     return
                 }
-            
+                
                 // typefile directory ? (NOT PERMITTED)
                 do {
                     let attributes = try fileProviderUtility.sharedInstance.fileManager.attributesOfItem(atPath: fileURL.path)
@@ -316,50 +313,45 @@ extension FileProviderExtension {
                     completionHandler(nil, NSFileProviderError(.noSuchItem))
                     return
                 }
-            
+        
                 let fileName = NCUtility.sharedInstance.createFileName(fileURL.lastPathComponent, serverUrl: tableDirectory.serverUrl, account: fileProviderData.sharedInstance.account)
-                let ocId = CCUtility.createMetadataID(fromAccount: fileProviderData.sharedInstance.account, serverUrl: tableDirectory.serverUrl, fileNameView: fileName, directory: false)!
-            
-                self.fileCoordinator.coordinate(readingItemAt: fileURL, options: .withoutChanges, error: &error) { (url) in
-                    _ = fileProviderUtility.sharedInstance.moveFile(url.path, toPath: CCUtility.getDirectoryProviderStorageOcId(ocId, fileNameView: fileName))
-                }
-            
-                fileURL.stopAccessingSecurityScopedResource()
-            
-                // ---------------------------------------------------------------------------------
-            
-                // Metadata TEMP
-                metadata.account = fileProviderData.sharedInstance.account
-                metadata.date = NSDate()
-                metadata.directory = false
-                metadata.etag = ""
-                metadata.ocId = ocId
-                metadata.fileId = ocId
-                metadata.fileName = fileName
-                metadata.fileNameView = fileName
-                metadata.serverUrl = tableDirectory.serverUrl
-                metadata.size = size
-                metadata.status = Int(k_metadataStatusHide)
-               
-                CCUtility.insertTypeFileIconName(fileName, metadata: metadata)
-
-                if (size > 0) {
-                    
-                    metadata.session = k_upload_session_extension
-                    metadata.sessionSelector = selectorUploadFile
-                    metadata.status = Int(k_metadataStatusWaitUpload)
-                }
+                let fileNameServerUrl = tableDirectory.serverUrl + "/" + fileName
+                let fileNameLocalPath = fileURL.path
                 
-                guard let metadataDB = NCManageDatabase.sharedInstance.addMetadata(metadata) else {
-                    completionHandler(nil, NSFileProviderError(.noSuchItem))
-                    return
-                }
-                            
-                let item = FileProviderItem(metadata: metadataDB, parentItemIdentifier: parentItemIdentifier)
-            
-                completionHandler(item, nil)
+                OCNetworking.sharedManager()?.upload(withAccount: fileProviderData.sharedInstance.account, fileNameServerUrl: fileNameServerUrl, fileNameLocalPath: fileNameLocalPath, encode: true, communication: OCNetworking.sharedManager()?.sharedOCCommunicationExtension(), progress: { (progress) in
+                    
+                }, completion: { (account, ocId, etag, date, message, errorCode) in
+                    
+                    if account == fileProviderData.sharedInstance.account && errorCode == 0 {
+                        
+                        self.fileCoordinator.coordinate(readingItemAt: fileURL, options: .withoutChanges, error: &error) { (url) in
+                            _ = fileProviderUtility.sharedInstance.copyFile(url.path, toPath: CCUtility.getDirectoryProviderStorageOcId(ocId, fileNameView: fileName))
+                        }
+                        
+                        let metadata = tableMetadata()
+                        metadata.account = fileProviderData.sharedInstance.account
+                        metadata.date = date! as NSDate
+                        metadata.directory = false
+                        metadata.etag = etag!
+                        metadata.ocId = ocId!
+                        metadata.fileName = fileName
+                        metadata.fileNameView = fileName
+                        metadata.serverUrl = tableDirectory.serverUrl
+                        metadata.size = size
+                        
+                        guard let metadataDB = NCManageDatabase.sharedInstance.addMetadata(metadata) else {
+                            completionHandler(nil, NSFileProviderError(.noSuchItem))
+                            return
+                        }
+                        let item = FileProviderItem(metadata: metadataDB, parentItemIdentifier: parentItemIdentifier)
+                        completionHandler(item, nil)
 
-                self.uploadFileImportDocument()            
+                    } else {
+                        completionHandler(nil, NSFileProviderError(.serverUnreachable))
+                    }
+                    
+                    fileURL.stopAccessingSecurityScopedResource()
+                })
             }
         }
     }