|
@@ -21,7 +21,7 @@
|
|
|
|
|
|
import UIKit
|
|
|
import OpenSSL
|
|
|
-import NCCommunication
|
|
|
+import NextcloudKit
|
|
|
import CFNetwork
|
|
|
import Alamofire
|
|
|
|
|
@@ -33,7 +33,7 @@ import Alamofire
|
|
|
|
|
|
// MARK: - WebDav Create Folder
|
|
|
|
|
|
- func createFolder(fileName: String, serverUrl: String, account: String, urlBase: String, completion: @escaping (_ errorCode: Int, _ errorDescription: String) -> Void) {
|
|
|
+ func createFolder(fileName: String, serverUrl: String, account: String, urlBase: String, completion: @escaping (_ error: NKError) -> Void) {
|
|
|
|
|
|
var fileNameFolder = CCUtility.removeForbiddenCharactersServer(fileName)!
|
|
|
var fileNameFolderUrl = ""
|
|
@@ -43,25 +43,25 @@ import Alamofire
|
|
|
|
|
|
fileNameFolder = NCUtilityFileSystem.shared.createFileName(fileNameFolder, serverUrl: serverUrl, account: account)
|
|
|
if fileNameFolder.count == 0 {
|
|
|
- return completion(0, "")
|
|
|
+ return completion(NKError(errorCode: 0, errorDescription: ""))
|
|
|
}
|
|
|
fileNameIdentifier = CCUtility.generateRandomIdentifier()
|
|
|
fileNameFolderUrl = serverUrl + "/" + fileNameIdentifier
|
|
|
|
|
|
- self.lock(account: account, serverUrl: serverUrl) { directory, e2eToken, errorCode, errorDescription in
|
|
|
- if errorCode == 0 && e2eToken != nil && directory != nil {
|
|
|
+ self.lock(account: account, serverUrl: serverUrl) { directory, e2eToken, error in
|
|
|
+ if error == .success && e2eToken != nil && directory != nil {
|
|
|
|
|
|
- NCCommunication.shared.createFolder(fileNameFolderUrl, addCustomHeaders: ["e2e-token": e2eToken!]) { account, ocId, _, errorCode, errorDescription in
|
|
|
- if errorCode == 0 {
|
|
|
+ NextcloudKit.shared.createFolder(fileNameFolderUrl, addCustomHeaders: ["e2e-token": e2eToken!]) { account, ocId, _, error in
|
|
|
+ if error == .success {
|
|
|
guard let fileId = NCUtility.shared.ocIdToFileId(ocId: ocId) else {
|
|
|
// unlock
|
|
|
if let tableLock = NCManageDatabase.shared.getE2ETokenLock(account: account, serverUrl: serverUrl) {
|
|
|
- NCCommunication.shared.lockE2EEFolder(fileId: tableLock.fileId, e2eToken: tableLock.e2eToken, method: "DELETE") { _, _, _, _ in }
|
|
|
+ NextcloudKit.shared.lockE2EEFolder(fileId: tableLock.fileId, e2eToken: tableLock.e2eToken, method: "DELETE") { _, _, _ in }
|
|
|
}
|
|
|
- return completion(NCGlobal.shared.errorInternalError, "Error convert ocId")
|
|
|
+ return completion(NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "Error convert ocId"))
|
|
|
}
|
|
|
- NCCommunication.shared.markE2EEFolder(fileId: fileId, delete: false) { account, errorCode, errorDescription in
|
|
|
- if errorCode == 0 {
|
|
|
+ NextcloudKit.shared.markE2EEFolder(fileId: fileId, delete: false) { account, error in
|
|
|
+ if error == .success {
|
|
|
|
|
|
let object = tableE2eEncryption()
|
|
|
|
|
@@ -88,86 +88,86 @@ import Alamofire
|
|
|
|
|
|
NCManageDatabase.shared.addE2eEncryption(object)
|
|
|
|
|
|
- self.sendE2EMetadata(account: account, serverUrl: serverUrl, fileNameRename: nil, fileNameNewRename: nil, deleteE2eEncryption: nil, urlBase: urlBase) { e2eToken, errorCode, errorDescription in
|
|
|
+ self.sendE2EMetadata(account: account, serverUrl: serverUrl, fileNameRename: nil, fileNameNewRename: nil, deleteE2eEncryption: nil, urlBase: urlBase) { e2eToken, error in
|
|
|
// unlock
|
|
|
if let tableLock = NCManageDatabase.shared.getE2ETokenLock(account: account, serverUrl: serverUrl) {
|
|
|
- NCCommunication.shared.lockE2EEFolder(fileId: tableLock.fileId, e2eToken: tableLock.e2eToken, method: "DELETE") { _, _, _, _ in }
|
|
|
+ NextcloudKit.shared.lockE2EEFolder(fileId: tableLock.fileId, e2eToken: tableLock.e2eToken, method: "DELETE") { _, _, _ in }
|
|
|
}
|
|
|
- if errorCode == 0 {
|
|
|
+ if error == .success {
|
|
|
NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterCreateFolder, userInfo: nil)
|
|
|
}
|
|
|
- completion(errorCode, errorDescription)
|
|
|
+ completion(error)
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
// unlock
|
|
|
if let tableLock = NCManageDatabase.shared.getE2ETokenLock(account: account, serverUrl: serverUrl) {
|
|
|
- NCCommunication.shared.lockE2EEFolder(fileId: tableLock.fileId, e2eToken: tableLock.e2eToken, method: "DELETE") { _, _, _, _ in }
|
|
|
+ NextcloudKit.shared.lockE2EEFolder(fileId: tableLock.fileId, e2eToken: tableLock.e2eToken, method: "DELETE") { _, _, _ in }
|
|
|
}
|
|
|
- completion(errorCode, errorDescription)
|
|
|
+ completion(error)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
// unlock
|
|
|
if let tableLock = NCManageDatabase.shared.getE2ETokenLock(account: account, serverUrl: serverUrl) {
|
|
|
- NCCommunication.shared.lockE2EEFolder(fileId: tableLock.fileId, e2eToken: tableLock.e2eToken, method: "DELETE") { _, _, _, _ in }
|
|
|
+ NextcloudKit.shared.lockE2EEFolder(fileId: tableLock.fileId, e2eToken: tableLock.e2eToken, method: "DELETE") { _, _, _ in }
|
|
|
}
|
|
|
- completion(errorCode, errorDescription)
|
|
|
+ completion(error)
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- completion(errorCode, errorDescription ?? "")
|
|
|
+ completion(error)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// MARK: - WebDav Delete
|
|
|
|
|
|
- func deleteMetadata(_ metadata: tableMetadata, completion: @escaping (_ errorCode: Int, _ errorDescription: String) -> Void) {
|
|
|
+ func deleteMetadata(_ metadata: tableMetadata, completion: @escaping (_ error: NKError) -> Void) {
|
|
|
|
|
|
- self.lock(account: metadata.account, serverUrl: metadata.serverUrl) { directory, e2eToken, errorCode, errorDescription in
|
|
|
- if errorCode == 0 && e2eToken != nil && directory != nil {
|
|
|
+ self.lock(account: metadata.account, serverUrl: metadata.serverUrl) { directory, e2eToken, error in
|
|
|
+ if error == .success && e2eToken != nil && directory != nil {
|
|
|
let deleteE2eEncryption = NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileNameIdentifier == %@", metadata.account, metadata.serverUrl, metadata.fileName)
|
|
|
- NCNetworking.shared.deleteMetadataPlain(metadata, addCustomHeaders: ["e2e-token": e2eToken!]) { errorCode, errorDescription in
|
|
|
+ NCNetworking.shared.deleteMetadataPlain(metadata, addCustomHeaders: ["e2e-token": e2eToken!]) { error in
|
|
|
|
|
|
let home = NCUtilityFileSystem.shared.getHomeServer(account: metadata.account)
|
|
|
if metadata.serverUrl != home {
|
|
|
- self.sendE2EMetadata(account: metadata.account, serverUrl: metadata.serverUrl, fileNameRename: nil, fileNameNewRename: nil, deleteE2eEncryption: deleteE2eEncryption, urlBase: metadata.urlBase) { e2eToken, errorCode, errorDescription in
|
|
|
+ self.sendE2EMetadata(account: metadata.account, serverUrl: metadata.serverUrl, fileNameRename: nil, fileNameNewRename: nil, deleteE2eEncryption: deleteE2eEncryption, urlBase: metadata.urlBase) { e2eToken, error in
|
|
|
// unlock
|
|
|
if let tableLock = NCManageDatabase.shared.getE2ETokenLock(account: metadata.account, serverUrl: metadata.serverUrl) {
|
|
|
- NCCommunication.shared.lockE2EEFolder(fileId: tableLock.fileId, e2eToken: tableLock.e2eToken, method: "DELETE") { _, _, _, _ in }
|
|
|
+ NextcloudKit.shared.lockE2EEFolder(fileId: tableLock.fileId, e2eToken: tableLock.e2eToken, method: "DELETE") { _, _, _ in }
|
|
|
}
|
|
|
- completion(errorCode, errorDescription)
|
|
|
+ completion(error)
|
|
|
}
|
|
|
} else {
|
|
|
// unlock
|
|
|
if let tableLock = NCManageDatabase.shared.getE2ETokenLock(account: metadata.account, serverUrl: metadata.serverUrl) {
|
|
|
- NCCommunication.shared.lockE2EEFolder(fileId: tableLock.fileId, e2eToken: tableLock.e2eToken, method: "DELETE") { _, _, _, _ in }
|
|
|
+ NextcloudKit.shared.lockE2EEFolder(fileId: tableLock.fileId, e2eToken: tableLock.e2eToken, method: "DELETE") { _, _, _ in }
|
|
|
}
|
|
|
- completion(errorCode, errorDescription)
|
|
|
+ completion(error)
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- completion(errorCode, errorDescription ?? "")
|
|
|
+ completion(error)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// MARK: - WebDav Rename
|
|
|
|
|
|
- func renameMetadata(_ metadata: tableMetadata, fileNameNew: String, completion: @escaping (_ errorCode: Int, _ errorDescription: String?) -> Void) {
|
|
|
+ func renameMetadata(_ metadata: tableMetadata, fileNameNew: String, completion: @escaping (_ error: NKError) -> Void) {
|
|
|
|
|
|
// verify if exists the new fileName
|
|
|
if NCManageDatabase.shared.getE2eEncryption(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileName == %@", metadata.account, metadata.serverUrl, fileNameNew)) != nil {
|
|
|
|
|
|
- completion(NCGlobal.shared.errorInternalError, "_file_already_exists_")
|
|
|
+ return completion(NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "_file_already_exists_"))
|
|
|
|
|
|
} else {
|
|
|
|
|
|
- self.sendE2EMetadata(account: metadata.account, serverUrl: metadata.serverUrl, fileNameRename: metadata.fileName, fileNameNewRename: fileNameNew, deleteE2eEncryption: nil, urlBase: metadata.urlBase) { e2eToken, errorCode, errorDescription in
|
|
|
+ self.sendE2EMetadata(account: metadata.account, serverUrl: metadata.serverUrl, fileNameRename: metadata.fileName, fileNameNewRename: fileNameNew, deleteE2eEncryption: nil, urlBase: metadata.urlBase) { e2eToken, error in
|
|
|
|
|
|
- if errorCode == 0 {
|
|
|
+ if error == .success {
|
|
|
NCManageDatabase.shared.setMetadataFileNameView(serverUrl: metadata.serverUrl, fileName: metadata.fileName, newFileNameView: fileNameNew, account: metadata.account)
|
|
|
|
|
|
// Move file system
|
|
@@ -182,17 +182,17 @@ import Alamofire
|
|
|
|
|
|
// unlock
|
|
|
if let tableLock = NCManageDatabase.shared.getE2ETokenLock(account: metadata.account, serverUrl: metadata.serverUrl) {
|
|
|
- NCCommunication.shared.lockE2EEFolder(fileId: tableLock.fileId, e2eToken: tableLock.e2eToken, method: "DELETE") { _, _, _, _ in }
|
|
|
+ NextcloudKit.shared.lockE2EEFolder(fileId: tableLock.fileId, e2eToken: tableLock.e2eToken, method: "DELETE") { _, _, _ in }
|
|
|
}
|
|
|
|
|
|
- completion(errorCode, errorDescription)
|
|
|
+ completion(error)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// MARK: - Upload
|
|
|
|
|
|
- func upload(metadata: tableMetadata, start: @escaping () -> Void, completion: @escaping (_ errorCode: Int, _ errorDescription: String) -> Void) {
|
|
|
+ func upload(metadata: tableMetadata, start: @escaping () -> Void, completion: @escaping (_ error: NKError) -> Void) {
|
|
|
|
|
|
let objectE2eEncryption = tableE2eEncryption()
|
|
|
var key: NSString?, initializationVector: NSString?, authenticationTag: NSString?
|
|
@@ -204,14 +204,14 @@ import Alamofire
|
|
|
NCManageDatabase.shared.deleteMetadata(predicate: NSPredicate(format: "ocId == %@", ocIdTemp))
|
|
|
NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterUploadedFile, userInfo: ["ocId": metadata.ocId, "serverUrl": metadata.serverUrl, "account": metadata.account, "fileName": metadata.fileName, "ocIdTemp": ocIdTemp, "errorCode": NCGlobal.shared.errorInternalError, "errorDescription": "E2E Error file too big"])
|
|
|
start()
|
|
|
- return completion(NCGlobal.shared.errorInternalError, "E2E Error file too big")
|
|
|
+ return completion(NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "E2E Error file too big"))
|
|
|
}
|
|
|
|
|
|
// Update metadata
|
|
|
var metadata = tableMetadata.init(value: metadata)
|
|
|
metadata.fileName = CCUtility.generateRandomIdentifier()!
|
|
|
metadata.e2eEncrypted = true
|
|
|
- metadata.session = NCCommunicationCommon.shared.sessionIdentifierUpload
|
|
|
+ metadata.session = NKCommon.shared.sessionIdentifierUpload
|
|
|
metadata.sessionError = ""
|
|
|
NCManageDatabase.shared.addMetadata(metadata)
|
|
|
|
|
@@ -223,7 +223,7 @@ import Alamofire
|
|
|
NCManageDatabase.shared.deleteMetadata(predicate: NSPredicate(format: "ocId == %@", ocIdTemp))
|
|
|
NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterUploadedFile, userInfo: ["ocId": metadata.ocId, "serverUrl": metadata.serverUrl, "account": metadata.account, "fileName": metadata.fileName, "ocIdTemp": ocIdTemp, "errorCode": NCGlobal.shared.errorInternalError, "errorDescription": "_e2e_error_create_encrypted_"])
|
|
|
start()
|
|
|
- return completion(NCGlobal.shared.errorInternalError, "_e2e_error_create_encrypted_")
|
|
|
+ return completion(NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "_e2e_error_create_encrypted_"))
|
|
|
}
|
|
|
|
|
|
if let result = NCManageDatabase.shared.getE2eEncryption(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", metadata.account, serverUrl)) {
|
|
@@ -252,18 +252,18 @@ import Alamofire
|
|
|
metadata = getMetadata
|
|
|
} else {
|
|
|
start()
|
|
|
- return completion(NCGlobal.shared.errorInternalError, "_e2e_error_create_encrypted_")
|
|
|
+ return completion(NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "_e2e_error_create_encrypted_"))
|
|
|
}
|
|
|
|
|
|
NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterReloadDataSource, userInfo: ["serverUrl": metadata.serverUrl])
|
|
|
NCContentPresenter.shared.noteTop(text: NSLocalizedString("_upload_e2ee_", comment: ""), image: nil, type: NCContentPresenter.messageType.info, delay: NCGlobal.shared.dismissAfterSecond, priority: .max)
|
|
|
- NCNetworkingE2EE.shared.sendE2EMetadata(account: metadata.account, serverUrl: serverUrl, fileNameRename: nil, fileNameNewRename: nil, deleteE2eEncryption: nil, urlBase: metadata.urlBase, upload: true) { e2eToken, errorCode, errorDescription in
|
|
|
+ NCNetworkingE2EE.shared.sendE2EMetadata(account: metadata.account, serverUrl: serverUrl, fileNameRename: nil, fileNameNewRename: nil, deleteE2eEncryption: nil, urlBase: metadata.urlBase, upload: true) { e2eToken, error in
|
|
|
|
|
|
start()
|
|
|
|
|
|
- if errorCode == 0 && e2eToken != nil {
|
|
|
+ if error == .success && e2eToken != nil {
|
|
|
|
|
|
- NCCommunication.shared.upload(serverUrlFileName: serverUrlFileName, fileNameLocalPath: fileNameLocalPath, dateCreationFile: metadata.date as Date, dateModificationFile: metadata.date as Date, addCustomHeaders: ["e2e-token": e2eToken!], requestHandler: { request in
|
|
|
+ NextcloudKit.shared.upload(serverUrlFileName: serverUrlFileName, fileNameLocalPath: fileNameLocalPath, dateCreationFile: metadata.date as Date, dateModificationFile: metadata.date as Date, addCustomHeaders: ["e2e-token": e2eToken!], requestHandler: { request in
|
|
|
|
|
|
NCNetworking.shared.uploadRequest[fileNameLocalPathRequest] = request
|
|
|
NCManageDatabase.shared.setMetadataSession(ocId: metadata.ocId, session: nil, sessionError: nil, sessionSelector: nil, sessionTaskIdentifier: nil, status: NCGlobal.shared.metadataStatusUploading)
|
|
@@ -285,18 +285,18 @@ import Alamofire
|
|
|
"totalBytes": NSNumber(value: progress.totalUnitCount),
|
|
|
"totalBytesExpected": NSNumber(value: progress.completedUnitCount)])
|
|
|
|
|
|
- }) { account, ocId, etag, date, _, _, error, errorCode, errorDescription in
|
|
|
+ }) { account, ocId, etag, date, _, _, afError, error in
|
|
|
|
|
|
NCNetworking.shared.uploadRequest.removeValue(forKey: fileNameLocalPath)
|
|
|
if let metadata = NCManageDatabase.shared.getMetadataFromOcId(metadata.ocId) {
|
|
|
- if error?.isExplicitlyCancelledError ?? false {
|
|
|
+ if afError?.isExplicitlyCancelledError ?? false {
|
|
|
|
|
|
CCUtility.removeFile(atPath: CCUtility.getDirectoryProviderStorageOcId(metadata.ocId))
|
|
|
NCManageDatabase.shared.deleteMetadata(predicate: NSPredicate(format: "ocId == %@", metadata.ocId))
|
|
|
- NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterUploadedFile, userInfo: ["ocId": metadata.ocId, "serverUrl": metadata.serverUrl, "account": metadata.account, "fileName": metadata.fileName, "ocIdTemp": ocIdTemp, "errorCode": errorCode, "errorDescription": ""])
|
|
|
- completion(0, "")
|
|
|
+ NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterUploadedFile, userInfo: ["ocId": metadata.ocId, "serverUrl": metadata.serverUrl, "account": metadata.account, "fileName": metadata.fileName, "ocIdTemp": ocIdTemp, "errorCode": error.errorCode, "errorDescription": ""])
|
|
|
+ completion(NKError(errorCode: 0, errorDescription: ""))
|
|
|
|
|
|
- } else if errorCode == 0 && ocId != nil {
|
|
|
+ } else if error == .success && ocId != nil {
|
|
|
|
|
|
NCUtilityFileSystem.shared.moveFileInBackground(atPath: CCUtility.getDirectoryProviderStorageOcId(metadata.ocId), toPath: CCUtility.getDirectoryProviderStorageOcId(ocId))
|
|
|
|
|
@@ -314,95 +314,95 @@ import Alamofire
|
|
|
NCManageDatabase.shared.addLocalFile(metadata: metadata)
|
|
|
|
|
|
NCUtility.shared.createImageFrom(fileNameView: metadata.fileNameView, ocId: metadata.ocId, etag: metadata.etag, classFile: metadata.classFile)
|
|
|
- NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterUploadedFile, userInfo: ["ocId": metadata.ocId, "serverUrl": metadata.serverUrl, "account": metadata.account, "fileName": metadata.fileName, "ocIdTemp": ocIdTemp, "errorCode": errorCode, "errorDescription": ""])
|
|
|
+ NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterUploadedFile, userInfo: ["ocId": metadata.ocId, "serverUrl": metadata.serverUrl, "account": metadata.account, "fileName": metadata.fileName, "ocIdTemp": ocIdTemp, "errorCode": error.errorCode, "errorDescription": ""])
|
|
|
|
|
|
} else {
|
|
|
|
|
|
- if errorCode == 401 || errorCode == 403 {
|
|
|
+ if error.errorCode == 401 || error.errorCode == 403 {
|
|
|
|
|
|
#if !EXTENSION
|
|
|
- NCNetworkingCheckRemoteUser.shared.checkRemoteUser(account: metadata.account, errorCode: errorCode, errorDescription: errorDescription)
|
|
|
+ NCNetworkingCheckRemoteUser.shared.checkRemoteUser(account: metadata.account, error: error)
|
|
|
#endif
|
|
|
- NCManageDatabase.shared.setMetadataSession(ocId: metadata.ocId, session: nil, sessionError: errorDescription, sessionTaskIdentifier: 0, status: NCGlobal.shared.metadataStatusUploadError)
|
|
|
+ NCManageDatabase.shared.setMetadataSession(ocId: metadata.ocId, session: nil, sessionError: error.errorDescription, sessionTaskIdentifier: 0, status: NCGlobal.shared.metadataStatusUploadError)
|
|
|
|
|
|
} else {
|
|
|
|
|
|
- NCManageDatabase.shared.setMetadataSession(ocId: metadata.ocId, session: nil, sessionError: errorDescription, sessionTaskIdentifier: 0, status: NCGlobal.shared.metadataStatusUploadError)
|
|
|
+ NCManageDatabase.shared.setMetadataSession(ocId: metadata.ocId, session: nil, sessionError: error.errorDescription, sessionTaskIdentifier: 0, status: NCGlobal.shared.metadataStatusUploadError)
|
|
|
}
|
|
|
|
|
|
- NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterUploadedFile, userInfo: ["ocId": metadata.ocId, "serverUrl": metadata.serverUrl, "account": metadata.account, "fileName": metadata.fileName, "ocIdTemp": ocIdTemp, "errorCode": errorCode, "errorDescription": ""])
|
|
|
+ NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterUploadedFile, userInfo: ["ocId": metadata.ocId, "serverUrl": metadata.serverUrl, "account": metadata.account, "fileName": metadata.fileName, "ocIdTemp": ocIdTemp, "errorCode": error.errorCode, "errorDescription": ""])
|
|
|
}
|
|
|
}
|
|
|
- NCNetworkingE2EE.shared.unlock(account: metadata.account, serverUrl: serverUrl) { _, _, _, _ in
|
|
|
- completion(errorCode, errorDescription)
|
|
|
+ NCNetworkingE2EE.shared.unlock(account: metadata.account, serverUrl: serverUrl) { _, _, _ in
|
|
|
+ completion(error)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
if let metadata = NCManageDatabase.shared.getMetadataFromOcId(ocIdTemp) {
|
|
|
- NCManageDatabase.shared.setMetadataSession(ocId: metadata.ocId, session: nil, sessionError: errorDescription, sessionTaskIdentifier: 0, status: NCGlobal.shared.metadataStatusUploadError)
|
|
|
- NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterUploadedFile, userInfo: ["ocId": metadata.ocId, "serverUrl": metadata.serverUrl, "account": metadata.account, "fileName": metadata.fileName, "ocIdTemp": ocIdTemp, "errorCode": errorCode, "errorDescription": errorDescription])
|
|
|
+ NCManageDatabase.shared.setMetadataSession(ocId: metadata.ocId, session: nil, sessionError: error.errorDescription, sessionTaskIdentifier: 0, status: NCGlobal.shared.metadataStatusUploadError)
|
|
|
+ NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterUploadedFile, userInfo: ["ocId": metadata.ocId, "serverUrl": metadata.serverUrl, "account": metadata.account, "fileName": metadata.fileName, "ocIdTemp": ocIdTemp, "errorCode": error.errorCode, "errorDescription": error.errorDescription])
|
|
|
}
|
|
|
- completion(errorCode, errorDescription)
|
|
|
+ completion(error)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// MARK: - E2EE
|
|
|
|
|
|
- @objc func lock(account: String, serverUrl: String, completion: @escaping (_ direcrtory: tableDirectory?, _ e2eToken: String?, _ errorCode: Int, _ errorDescription: String?) -> Void) {
|
|
|
+ @objc func lock(account: String, serverUrl: String, completion: @escaping (_ direcrtory: tableDirectory?, _ e2eToken: String?, _ error: NKError) -> Void) {
|
|
|
|
|
|
var e2eToken: String?
|
|
|
|
|
|
guard let directory = NCManageDatabase.shared.getTableDirectory(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", account, serverUrl)) else {
|
|
|
- return completion(nil, nil, 0, "")
|
|
|
+ return completion(nil, nil, NKError(errorCode: 0, errorDescription: ""))
|
|
|
}
|
|
|
|
|
|
if let tableLock = NCManageDatabase.shared.getE2ETokenLock(account: account, serverUrl: serverUrl) {
|
|
|
e2eToken = tableLock.e2eToken
|
|
|
}
|
|
|
|
|
|
- NCCommunication.shared.lockE2EEFolder(fileId: directory.fileId, e2eToken: e2eToken, method: "POST") { account, e2eToken, errorCode, errorDescription in
|
|
|
- if errorCode == 0 && e2eToken != nil {
|
|
|
+ NextcloudKit.shared.lockE2EEFolder(fileId: directory.fileId, e2eToken: e2eToken, method: "POST") { account, e2eToken, error in
|
|
|
+ if error == .success && e2eToken != nil {
|
|
|
NCManageDatabase.shared.setE2ETokenLock(account: account, serverUrl: serverUrl, fileId: directory.fileId, e2eToken: e2eToken!)
|
|
|
}
|
|
|
- completion(directory, e2eToken, errorCode, errorDescription)
|
|
|
+ completion(directory, e2eToken, error)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- @objc func unlock(account: String, serverUrl: String, completion: @escaping (_ direcrtory: tableDirectory?, _ e2eToken: String?, _ errorCode: Int, _ errorDescription: String?) -> Void) {
|
|
|
+ @objc func unlock(account: String, serverUrl: String, completion: @escaping (_ direcrtory: tableDirectory?, _ e2eToken: String?, _ error: NKError) -> Void) {
|
|
|
|
|
|
var e2eToken: String?
|
|
|
|
|
|
guard let directory = NCManageDatabase.shared.getTableDirectory(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", account, serverUrl)) else {
|
|
|
- return completion(nil, nil, 0, "")
|
|
|
+ return completion(nil, nil, NKError(errorCode: 0, errorDescription: ""))
|
|
|
}
|
|
|
|
|
|
if let tableLock = NCManageDatabase.shared.getE2ETokenLock(account: account, serverUrl: serverUrl) {
|
|
|
e2eToken = tableLock.e2eToken
|
|
|
}
|
|
|
|
|
|
- NCCommunication.shared.lockE2EEFolder(fileId: directory.fileId, e2eToken: e2eToken, method: "DELETE") { account, e2eToken, errorCode, errorDescription in
|
|
|
- if errorCode == 0 {
|
|
|
+ NextcloudKit.shared.lockE2EEFolder(fileId: directory.fileId, e2eToken: e2eToken, method: "DELETE") { account, e2eToken, error in
|
|
|
+ if error == .success {
|
|
|
NCManageDatabase.shared.deteleE2ETokenLock(account: account, serverUrl: serverUrl)
|
|
|
}
|
|
|
- completion(directory, e2eToken, errorCode, errorDescription)
|
|
|
+ completion(directory, e2eToken, error)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- @objc func sendE2EMetadata(account: String, serverUrl: String, fileNameRename: String?, fileNameNewRename: String?, deleteE2eEncryption: NSPredicate?, urlBase: String, upload: Bool = false, completion: @escaping (_ e2eToken: String?, _ errorCode: Int, _ errorDescription: String) -> Void) {
|
|
|
+ @objc func sendE2EMetadata(account: String, serverUrl: String, fileNameRename: String?, fileNameNewRename: String?, deleteE2eEncryption: NSPredicate?, urlBase: String, upload: Bool = false, completion: @escaping (_ e2eToken: String?, _ error: NKError) -> Void) {
|
|
|
|
|
|
- self.lock(account: account, serverUrl: serverUrl) { directory, e2eToken, errorCode, errorDescription in
|
|
|
- if errorCode == 0 && e2eToken != nil && directory != nil {
|
|
|
+ self.lock(account: account, serverUrl: serverUrl) { directory, e2eToken, error in
|
|
|
+ if error == .success && e2eToken != nil && directory != nil {
|
|
|
|
|
|
- NCCommunication.shared.getE2EEMetadata(fileId: directory!.fileId, e2eToken: e2eToken) { account, e2eMetadata, errorCode, errorDescription in
|
|
|
+ NextcloudKit.shared.getE2EEMetadata(fileId: directory!.fileId, e2eToken: e2eToken) { account, e2eMetadata, error in
|
|
|
var method = "POST"
|
|
|
var e2eMetadataNew: String?
|
|
|
|
|
|
- if errorCode == 0 && e2eMetadata != nil {
|
|
|
+ if error == .success && e2eMetadata != nil {
|
|
|
if !NCEndToEndMetadata.shared.decoderMetadata(e2eMetadata!, privateKey: CCUtility.getEndToEndPrivateKey(account), serverUrl: serverUrl, account: account, urlBase: urlBase) {
|
|
|
- return completion(e2eToken, NCGlobal.shared.errorInternalError, NSLocalizedString("_e2e_error_encode_metadata_", comment: ""))
|
|
|
+ return completion(e2eToken, NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: NSLocalizedString("_e2e_error_encode_metadata_", comment: "")))
|
|
|
}
|
|
|
method = "PUT"
|
|
|
}
|
|
@@ -425,19 +425,19 @@ import Alamofire
|
|
|
method = "DELETE"
|
|
|
}
|
|
|
|
|
|
- NCCommunication.shared.putE2EEMetadata(fileId: directory!.fileId, e2eToken: e2eToken!, e2eMetadata: e2eMetadataNew, method: method) { account, _, errorCode, errorDescription in
|
|
|
+ NextcloudKit.shared.putE2EEMetadata(fileId: directory!.fileId, e2eToken: e2eToken!, e2eMetadata: e2eMetadataNew, method: method) { account, _, error in
|
|
|
|
|
|
if upload {
|
|
|
- completion(e2eToken, errorCode, errorDescription)
|
|
|
+ completion(e2eToken, error)
|
|
|
} else {
|
|
|
- self.unlock(account: account, serverUrl: serverUrl) { _, e2eToken, _, _ in
|
|
|
- completion(e2eToken, errorCode, errorDescription)
|
|
|
+ self.unlock(account: account, serverUrl: serverUrl) { _, e2eToken, _ in
|
|
|
+ completion(e2eToken, error)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- completion(e2eToken, errorCode, errorDescription ?? "")
|
|
|
+ completion(e2eToken, error)
|
|
|
}
|
|
|
}
|
|
|
}
|