mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-10-31 16:24:11 +00:00
02eb4b35e2
* Run swiftformat for whitespace. * Run swiftformat with some rules.
44 lines
1.2 KiB
Swift
44 lines
1.2 KiB
Swift
//
|
|
// SessionVerificationControllerProxyProtocol.swift
|
|
// ElementX
|
|
//
|
|
// Created by Stefan Ceriu on 07/06/2022.
|
|
// Copyright © 2022 Element. All rights reserved.
|
|
//
|
|
|
|
import Combine
|
|
import Foundation
|
|
|
|
enum SessionVerificationControllerProxyError: Error {
|
|
case failedRequestingVerification
|
|
case failedApprovingVerification
|
|
case failedDecliningVerification
|
|
case failedCancellingVerification
|
|
}
|
|
|
|
enum SessionVerificationControllerProxyCallback {
|
|
case receivedVerificationData([SessionVerificationEmoji])
|
|
case finished
|
|
case cancelled
|
|
case failed
|
|
}
|
|
|
|
struct SessionVerificationEmoji: Hashable {
|
|
let symbol: String
|
|
let description: String
|
|
}
|
|
|
|
protocol SessionVerificationControllerProxyProtocol {
|
|
var callbacks: PassthroughSubject<SessionVerificationControllerProxyCallback, Never> { get }
|
|
|
|
var isVerified: Bool { get }
|
|
|
|
func requestVerification() async -> Result<Void, SessionVerificationControllerProxyError>
|
|
|
|
func approveVerification() async -> Result<Void, SessionVerificationControllerProxyError>
|
|
|
|
func declineVerification() async -> Result<Void, SessionVerificationControllerProxyError>
|
|
|
|
func cancelVerification() async -> Result<Void, SessionVerificationControllerProxyError>
|
|
}
|