no message

This commit is contained in:
Peter Iakovlev
2018-04-03 16:19:15 +04:00
parent 42890de382
commit 2a22161d4d
4 changed files with 71 additions and 6 deletions

View File

@@ -36,6 +36,33 @@ func apiSecureValueType(value: SecureIdValue) -> Api.SecureValueType {
return type
}
func apiSecureValueType(key: SecureIdValueKey) -> Api.SecureValueType {
let type: Api.SecureValueType
switch key {
case .personalDetails:
type = .secureValueTypePersonalDetails
case .passport:
type = .secureValueTypePassport
case .driversLicense:
type = .secureValueTypeDriverLicense
case .idCard:
type = .secureValueTypeIdentityCard
case .address:
type = .secureValueTypeAddress
case .bankStatement:
type = .secureValueTypeBankStatement
case .utilityBill:
type = .secureValueTypeUtilityBill
case .rentalAgreement:
type = .secureValueTypeRentalAgreement
case .phone:
type = .secureValueTypePhone
case .email:
type = .secureValueTypeEmail
}
return type
}
private func credentialsValueTypeName(value: SecureIdValue) -> String {
switch value {
case .personalDetails:

View File

@@ -187,8 +187,8 @@ private func makeInputSecureValue(context: SecureIdAccessContext, value: SecureI
return Api.InputSecureValue.inputSecureValue(flags: flags, type: inputData.type, data: secureData, files: files, plainData: inputData.publicData, selfie: inputData.selfieReference.flatMap(apiInputSecretFile))
}
public func saveSecureIdValue(network: Network, context: SecureIdAccessContext, valueContext: SecureIdValueAccessContext, value: SecureIdValue) -> Signal<SecureIdValueWithContext, SaveSecureIdValueError> {
let delete = deleteSecureIdValue(network: network, value: value)
public func saveSecureIdValue(network: Network, context: SecureIdAccessContext, value: SecureIdValue) -> Signal<SecureIdValueWithContext, SaveSecureIdValueError> {
let delete = deleteSecureIdValues(network: network, keys: Set([value.key]))
|> mapError { _ -> SaveSecureIdValueError in
return .generic
}
@@ -227,8 +227,8 @@ public enum DeleteSecureIdValueError {
case generic
}
public func deleteSecureIdValue(network: Network, value: SecureIdValue) -> Signal<Void, DeleteSecureIdValueError> {
return network.request(Api.functions.account.deleteSecureValue(types: [apiSecureValueType(value: value)]))
public func deleteSecureIdValues(network: Network, keys: Set<SecureIdValueKey>) -> Signal<Void, DeleteSecureIdValueError> {
return network.request(Api.functions.account.deleteSecureValue(types: keys.map(apiSecureValueType(key:))))
|> mapError { _ -> DeleteSecureIdValueError in
return .generic
}

View File

@@ -1,5 +1,18 @@
import Foundation
public enum SecureIdValueKey: Int32 {
case personalDetails
case passport
case driversLicense
case idCard
case address
case utilityBill
case bankStatement
case rentalAgreement
case phone
case email
}
public enum SecureIdValue: Equatable {
case personalDetails(SecureIdPersonalDetailsValue)
case passport(SecureIdPassportValue)
@@ -12,6 +25,31 @@ public enum SecureIdValue: Equatable {
case phone(SecureIdPhoneValue)
case email(SecureIdEmailValue)
public var key: SecureIdValueKey {
switch self {
case .personalDetails:
return .personalDetails
case .passport:
return .passport
case .driversLicense:
return .driversLicense
case .idCard:
return .idCard
case .address:
return .address
case .utilityBill:
return .utilityBill
case .bankStatement:
return .bankStatement
case .rentalAgreement:
return .rentalAgreement
case .phone:
return .phone
case .email:
return .email
}
}
func serialize() -> ([String: Any], [SecureIdVerificationDocumentReference], SecureIdVerificationDocumentReference?)? {
switch self {
case let .personalDetails(personalDetails):

View File

@@ -59,7 +59,7 @@ public func secureIdCommitPhoneVerification(network: Network, context: SecureIdA
return .generic
}
|> mapToSignal { _ -> Signal<SecureIdValueWithContext, SecureIdCommitPhoneVerificationError> in
return saveSecureIdValue(network: network, context: context, valueContext: generateSecureIdValueEmptyAccessContext()!, value: .phone(SecureIdPhoneValue(phone: payload.phone)))
return saveSecureIdValue(network: network, context: context, value: .phone(SecureIdPhoneValue(phone: payload.phone)))
|> mapError { _ -> SecureIdCommitPhoneVerificationError in
return .generic
}
@@ -106,7 +106,7 @@ public func secureIdCommitEmailVerification(network: Network, context: SecureIdA
return .generic
}
|> mapToSignal { _ -> Signal<SecureIdValueWithContext, SecureIdCommitEmailVerificationError> in
return saveSecureIdValue(network: network, context: context, valueContext: generateSecureIdValueEmptyAccessContext()!, value: .email(SecureIdEmailValue(email: payload.email)))
return saveSecureIdValue(network: network, context: context, value: .email(SecureIdEmailValue(email: payload.email)))
|> mapError { _ -> SecureIdCommitEmailVerificationError in
return .generic
}