From d18229ec08d7b39479f78bc0a78670af45cbb54b Mon Sep 17 00:00:00 2001 From: Elizaveta Semenova Date: Mon, 10 Jul 2023 15:25:43 +0300 Subject: [PATCH 1/3] [PWN-9208] Fetch saved place of birth. Striga Registration --- ...StrigaRegistrationFirstStepViewModel.swift | 24 ++++++++++++++----- ...trigaRegistrationSecondStepViewModel.swift | 5 +--- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/p2p_wallet/Scenes/Main/BankTransfer/StrigaRegistration/FirstStep/StrigaRegistrationFirstStepViewModel.swift b/p2p_wallet/Scenes/Main/BankTransfer/StrigaRegistration/FirstStep/StrigaRegistrationFirstStepViewModel.swift index ccba82365b..0019922978 100644 --- a/p2p_wallet/Scenes/Main/BankTransfer/StrigaRegistration/FirstStep/StrigaRegistrationFirstStepViewModel.swift +++ b/p2p_wallet/Scenes/Main/BankTransfer/StrigaRegistration/FirstStep/StrigaRegistrationFirstStepViewModel.swift @@ -122,7 +122,11 @@ private extension StrigaRegistrationFirstStepViewModel { throw StrigaProviderError.invalidResponse } - await fetchPhoneNumber(data: data) + if let countries = try? await self.countriesService.fetchCountries() { + await fetchSaved(placeOfBirth: data.placeOfBirth, countries: countries) + await fetchPhoneNumber(data: data, countries: countries) + } + await MainActor.run { // save data self.data = data @@ -143,7 +147,6 @@ private extension StrigaRegistrationFirstStepViewModel { .joined(separator: ".") } } catch { - // TODO: - Handle error self.data = StrigaUserDetailsResponse.empty await MainActor.run { isLoading = false @@ -152,8 +155,17 @@ private extension StrigaRegistrationFirstStepViewModel { } } - func fetchPhoneNumber(data: StrigaUserDetailsResponse) async { - let countries = try? await countriesService.fetchCountries() + func fetchSaved(placeOfBirth: String?, countries: Countries) async { + if let country = countries.first(where: { + $0.alpha3Code.lowercased() == placeOfBirth?.lowercased() + }) { + await MainActor.run { + self.selectedCountryOfBirth = country + } + } + } + + func fetchPhoneNumber(data: StrigaUserDetailsResponse, countries: Countries) async { let metadataService: WalletMetadataService = Resolver.resolve() // Web3 phone by default var metaPhoneNumber: String = metadataService.metadata.value?.phoneNumber ?? "" @@ -167,7 +179,7 @@ private extension StrigaRegistrationFirstStepViewModel { phoneNumber = metaPhoneNumber if let number = try? phoneNumberKit.parse(phoneNumber) { phoneNumberModel = number - selectedPhoneCountryCode = countries?.first(where: { + selectedPhoneCountryCode = countries.first(where: { if let regionId = number.regionID { return $0.code.lowercased() == regionId.lowercased() } else { @@ -177,7 +189,7 @@ private extension StrigaRegistrationFirstStepViewModel { phoneNumber = phoneNumberKit.format(number, toType: .international, withPrefix: false) .replacingOccurrences(of: "-", with: "") } else { - selectedPhoneCountryCode = countries?.first(where: { $0.dialCode == "\(data.mobile.countryCode)" }) + selectedPhoneCountryCode = countries.first(where: { $0.dialCode == "\(data.mobile.countryCode)" }) phoneNumber = data.mobile.number } } diff --git a/p2p_wallet/Scenes/Main/BankTransfer/StrigaRegistration/SecondStep/StrigaRegistrationSecondStepViewModel.swift b/p2p_wallet/Scenes/Main/BankTransfer/StrigaRegistration/SecondStep/StrigaRegistrationSecondStepViewModel.swift index 18b3db711b..f819220426 100644 --- a/p2p_wallet/Scenes/Main/BankTransfer/StrigaRegistration/SecondStep/StrigaRegistrationSecondStepViewModel.swift +++ b/p2p_wallet/Scenes/Main/BankTransfer/StrigaRegistration/SecondStep/StrigaRegistrationSecondStepViewModel.swift @@ -103,10 +103,7 @@ private extension StrigaRegistrationSecondStepViewModel { Task { let countries = try await self.countriesService.fetchCountries() if let country = countries.first(where: { - if let cached = userData.address?.country { - return $0.code.lowercased() == cached.lowercased() - } - return $0.alpha3Code.lowercased() == userData.placeOfBirth?.lowercased() + $0.code.lowercased() == userData.address?.country?.lowercased() }) { self.selectedCountry = country } From a9dbbdd2c65c7d15815fd171fe4858a911bde210 Mon Sep 17 00:00:00 2001 From: Elizaveta Semenova Date: Mon, 10 Jul 2023 18:20:05 +0300 Subject: [PATCH 2/3] Remove unnecessary MainActor call --- .../FirstStep/StrigaRegistrationFirstStepViewModel.swift | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/p2p_wallet/Scenes/Main/BankTransfer/StrigaRegistration/FirstStep/StrigaRegistrationFirstStepViewModel.swift b/p2p_wallet/Scenes/Main/BankTransfer/StrigaRegistration/FirstStep/StrigaRegistrationFirstStepViewModel.swift index 0019922978..791509bb32 100644 --- a/p2p_wallet/Scenes/Main/BankTransfer/StrigaRegistration/FirstStep/StrigaRegistrationFirstStepViewModel.swift +++ b/p2p_wallet/Scenes/Main/BankTransfer/StrigaRegistration/FirstStep/StrigaRegistrationFirstStepViewModel.swift @@ -123,7 +123,7 @@ private extension StrigaRegistrationFirstStepViewModel { } if let countries = try? await self.countriesService.fetchCountries() { - await fetchSaved(placeOfBirth: data.placeOfBirth, countries: countries) + fetchSaved(placeOfBirth: data.placeOfBirth, countries: countries) await fetchPhoneNumber(data: data, countries: countries) } @@ -155,13 +155,11 @@ private extension StrigaRegistrationFirstStepViewModel { } } - func fetchSaved(placeOfBirth: String?, countries: Countries) async { + func fetchSaved(placeOfBirth: String?, countries: Countries) { if let country = countries.first(where: { $0.alpha3Code.lowercased() == placeOfBirth?.lowercased() }) { - await MainActor.run { - self.selectedCountryOfBirth = country - } + self.selectedCountryOfBirth = country } } From 980fc271d2dbe74f34ce7edbeb208d35a928a416 Mon Sep 17 00:00:00 2001 From: Elizaveta Semenova Date: Mon, 10 Jul 2023 18:21:58 +0300 Subject: [PATCH 3/3] [PWN-9208] Remove unnecessary method --- .../StrigaRegistrationFirstStepViewModel.swift | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/p2p_wallet/Scenes/Main/BankTransfer/StrigaRegistration/FirstStep/StrigaRegistrationFirstStepViewModel.swift b/p2p_wallet/Scenes/Main/BankTransfer/StrigaRegistration/FirstStep/StrigaRegistrationFirstStepViewModel.swift index 791509bb32..efff677768 100644 --- a/p2p_wallet/Scenes/Main/BankTransfer/StrigaRegistration/FirstStep/StrigaRegistrationFirstStepViewModel.swift +++ b/p2p_wallet/Scenes/Main/BankTransfer/StrigaRegistration/FirstStep/StrigaRegistrationFirstStepViewModel.swift @@ -123,7 +123,7 @@ private extension StrigaRegistrationFirstStepViewModel { } if let countries = try? await self.countriesService.fetchCountries() { - fetchSaved(placeOfBirth: data.placeOfBirth, countries: countries) + selectedCountryOfBirth = countries.first(where: { $0.alpha3Code.lowercased() == data.placeOfBirth?.lowercased() }) await fetchPhoneNumber(data: data, countries: countries) } @@ -155,14 +155,6 @@ private extension StrigaRegistrationFirstStepViewModel { } } - func fetchSaved(placeOfBirth: String?, countries: Countries) { - if let country = countries.first(where: { - $0.alpha3Code.lowercased() == placeOfBirth?.lowercased() - }) { - self.selectedCountryOfBirth = country - } - } - func fetchPhoneNumber(data: StrigaUserDetailsResponse, countries: Countries) async { let metadataService: WalletMetadataService = Resolver.resolve() // Web3 phone by default