mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Swift
		
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Swift
		
	
// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
 | 
						|
 | 
						|
import Foundation
 | 
						|
 | 
						|
public enum MessageSenderError: LocalizedError {
 | 
						|
    case invalidMessage
 | 
						|
    case protoConversionFailed
 | 
						|
    case noUserX25519KeyPair
 | 
						|
    case noUserED25519KeyPair
 | 
						|
    case signingFailed
 | 
						|
    case encryptionFailed
 | 
						|
    case noUsername
 | 
						|
    case attachmentsNotUploaded
 | 
						|
    
 | 
						|
    // Closed groups
 | 
						|
    case noThread
 | 
						|
    case noKeyPair
 | 
						|
    case invalidClosedGroupUpdate
 | 
						|
    
 | 
						|
    case other(Error)
 | 
						|
 | 
						|
    internal var isRetryable: Bool {
 | 
						|
        switch self {
 | 
						|
            case .invalidMessage, .protoConversionFailed, .invalidClosedGroupUpdate, .signingFailed, .encryptionFailed: return false
 | 
						|
            default: return true
 | 
						|
        }
 | 
						|
    }
 | 
						|
    
 | 
						|
    public var errorDescription: String? {
 | 
						|
        switch self {
 | 
						|
            case .invalidMessage: return "Invalid message."
 | 
						|
            case .protoConversionFailed: return "Couldn't convert message to proto."
 | 
						|
            case .noUserX25519KeyPair: return "Couldn't find user X25519 key pair."
 | 
						|
            case .noUserED25519KeyPair: return "Couldn't find user ED25519 key pair."
 | 
						|
            case .signingFailed: return "Couldn't sign message."
 | 
						|
            case .encryptionFailed: return "Couldn't encrypt message."
 | 
						|
            case .noUsername: return "Missing username."
 | 
						|
            case .attachmentsNotUploaded: return "Attachments for this message have not been uploaded."
 | 
						|
            
 | 
						|
            // Closed groups
 | 
						|
            case .noThread: return "Couldn't find a thread associated with the given group public key."
 | 
						|
            case .noKeyPair: return "Couldn't find a private key associated with the given group public key."
 | 
						|
            case .invalidClosedGroupUpdate: return "Invalid group update."
 | 
						|
            case .other(let error): return error.localizedDescription
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |