|
|
@ -77,9 +77,9 @@ class NewRegisterStep1Presenter: ViewModelType { |
|
|
|
private let gpsAddress = PublishSubject<String>() |
|
|
|
private let model = PublishSubject<KYCInformation>() |
|
|
|
|
|
|
|
private var personalInformation = BehaviorSubject<PersonalInformation?>(value: nil) |
|
|
|
private var primaryInformation = BehaviorSubject<PrimaryInformation?>(value: nil) |
|
|
|
private var pictureInformation = BehaviorSubject<PictureInformation?>(value: nil) |
|
|
|
private var storedPersonalInfo = PublishSubject<PersonalInformation?>() |
|
|
|
private var storedPrimaryInfo = PublishSubject<PrimaryInformation?>() |
|
|
|
private var pictureInformation = PublishSubject<PictureInformation?>() |
|
|
|
|
|
|
|
func transform(input: Input) -> Output { |
|
|
|
input.viewWillAppear.drive(onNext: { [weak self] in |
|
|
@ -128,18 +128,19 @@ class NewRegisterStep1Presenter: ViewModelType { |
|
|
|
address: address |
|
|
|
) : nil |
|
|
|
} |
|
|
|
.withLatestFrom(personalInformation.asDriverOnErrorJustComplete()) { (new, exist) |
|
|
|
.withLatestFrom(storedPersonalInfo.asDriverOnErrorJustComplete()) { [weak self] (new, stored) |
|
|
|
-> PersonalInformation? in |
|
|
|
|
|
|
|
guard let newInfo = new, let existInfo = exist else { |
|
|
|
guard let newInfo = new, let storedInfo = stored else { |
|
|
|
return new |
|
|
|
} |
|
|
|
|
|
|
|
if newInfo != existInfo { |
|
|
|
self.personalInformation.onNext(nil) |
|
|
|
return nil |
|
|
|
if newInfo == storedInfo { |
|
|
|
self?.storedPersonalInfo.onNext(newInfo) |
|
|
|
} else { |
|
|
|
self?.storedPersonalInfo.onNext(nil) |
|
|
|
} |
|
|
|
self.personalInformation.onNext(newInfo) |
|
|
|
|
|
|
|
return new |
|
|
|
} |
|
|
|
|
|
|
@ -181,17 +182,18 @@ class NewRegisterStep1Presenter: ViewModelType { |
|
|
|
primaryInfo?.refferalCode = referralCode |
|
|
|
return primaryInfo |
|
|
|
} |
|
|
|
.withLatestFrom(primaryInformation.asDriverOnErrorJustComplete()) { (new, exist) |
|
|
|
.withLatestFrom(storedPrimaryInfo.asDriverOnErrorJustComplete()) { [weak self] (new, stored) |
|
|
|
-> PrimaryInformation? in |
|
|
|
guard let newInfo = new, let existInfo = exist else { |
|
|
|
guard let newInfo = new, let storedInfo = stored else { |
|
|
|
return new |
|
|
|
} |
|
|
|
|
|
|
|
if newInfo != existInfo { |
|
|
|
self.primaryInformation.onNext(nil) |
|
|
|
return nil |
|
|
|
if newInfo == storedInfo { |
|
|
|
self?.storedPrimaryInfo.onNext(new) |
|
|
|
} else { |
|
|
|
self?.storedPrimaryInfo.onNext(nil) |
|
|
|
} |
|
|
|
self.primaryInformation.onNext(new) |
|
|
|
|
|
|
|
return new |
|
|
|
} |
|
|
|
|
|
|
@ -199,14 +201,14 @@ class NewRegisterStep1Presenter: ViewModelType { |
|
|
|
.drive(onNext: {[weak self] in |
|
|
|
// TODO: try to save to server the personal information. |
|
|
|
// if success save then set personalInformation. |
|
|
|
self?.personalInformation.onNext($0) |
|
|
|
self?.storedPersonalInfo.onNext($0) |
|
|
|
}).disposed(by: disposeBag) |
|
|
|
|
|
|
|
input.primaryInfoSave.withLatestFrom(primaryInfo) { $1 } |
|
|
|
.drive(onNext: {[weak self] in |
|
|
|
// TODO: try to save to server the primary information. |
|
|
|
// if success save then set personalInformation. |
|
|
|
self?.primaryInformation.onNext($0) |
|
|
|
self?.storedPrimaryInfo.onNext($0) |
|
|
|
}).disposed(by: disposeBag) |
|
|
|
|
|
|
|
return Output( |
|
|
@ -218,8 +220,8 @@ class NewRegisterStep1Presenter: ViewModelType { |
|
|
|
banks: model.map {$0.banks}.asDriverOnErrorJustComplete(), |
|
|
|
idTypes: model.map {$0.idTypes}.asDriverOnErrorJustComplete(), |
|
|
|
branches: model.map {$0.branches}.asDriverOnErrorJustComplete(), |
|
|
|
isSetPersonalInformation: personalInformation.map {$0 != nil}.asDriverOnErrorJustComplete(), |
|
|
|
isSetPrimaryInformation: primaryInformation.map {$0 != nil}.asDriverOnErrorJustComplete(), |
|
|
|
isSetPersonalInformation: storedPersonalInfo.map {$0 != nil}.asDriverOnErrorJustComplete(), |
|
|
|
isSetPrimaryInformation: storedPrimaryInfo.map {$0 != nil}.asDriverOnErrorJustComplete(), |
|
|
|
isSetPictureInformation: pictureInformation.map {$0 != nil}.asDriverOnErrorJustComplete() |
|
|
|
) |
|
|
|
} |
|
|
@ -229,11 +231,11 @@ class NewRegisterStep1Presenter: ViewModelType { |
|
|
|
extension NewRegisterStep1Presenter: NewRegisterStep1InteractorOutput { |
|
|
|
func setModel(with model: KYCInformation) { |
|
|
|
if let personalInfo = model.personalInformation, personalInfo.isFilledFully() { |
|
|
|
personalInformation.onNext(personalInfo) |
|
|
|
storedPersonalInfo.onNext(personalInfo) |
|
|
|
} |
|
|
|
|
|
|
|
if let primaryInfo = model.primaryInformation, primaryInfo.isFilledFully() { |
|
|
|
primaryInformation.onNext(primaryInfo) |
|
|
|
storedPrimaryInfo.onNext(primaryInfo) |
|
|
|
} |
|
|
|
|
|
|
|
self.model.onNext(model) |
|
|
|