diff --git a/sample/Assets/Scripts/Passport/ImxRegister/ImxRegisterScript.cs b/sample/Assets/Scripts/Passport/ImxRegister/ImxRegisterScript.cs index c634a43da..671c48bdd 100644 --- a/sample/Assets/Scripts/Passport/ImxRegister/ImxRegisterScript.cs +++ b/sample/Assets/Scripts/Passport/ImxRegister/ImxRegisterScript.cs @@ -43,7 +43,16 @@ public async void RegisterOffchain() } catch (PassportException e) { - ShowOutput($"Unable to register off-chain: {e.Message} ({e.Type})"); + // Handle 409 - account already registered + if (e.Type == PassportErrorType.USER_REGISTRATION_ERROR && + (e.Message.Contains("409") || e.Message.Contains("already registered"))) + { + ShowOutput("Passport account already registered"); + } + else + { + ShowOutput($"Unable to register off-chain: {e.Message} ({e.Type})"); + } } catch (Exception e) { @@ -58,4 +67,4 @@ private void ShowOutput(string message) Output.text = message; } } -} \ No newline at end of file +} diff --git a/src/Packages/Passport/Runtime/Scripts/Private/Model/MarketingConsentStatus.cs b/src/Packages/Passport/Runtime/Scripts/Private/Model/MarketingConsentStatus.cs index 07e74fce2..08ba1f557 100644 --- a/src/Packages/Passport/Runtime/Scripts/Private/Model/MarketingConsentStatus.cs +++ b/src/Packages/Passport/Runtime/Scripts/Private/Model/MarketingConsentStatus.cs @@ -9,6 +9,7 @@ namespace Immutable.Passport.Model public enum MarketingConsentStatus { OptedIn, + Subscribed, Unsubscribed } @@ -27,6 +28,7 @@ public static string ToApiString(this MarketingConsentStatus status) return status switch { MarketingConsentStatus.OptedIn => "opted_in", + MarketingConsentStatus.Subscribed => "subscribed", MarketingConsentStatus.Unsubscribed => "unsubscribed", _ => throw new ArgumentOutOfRangeException(nameof(status), status, "Unknown MarketingConsentStatus value") }; diff --git a/src/Packages/Passport/Runtime/Scripts/Public/PassportUI.cs b/src/Packages/Passport/Runtime/Scripts/Public/PassportUI.cs index e6086a995..f985fe674 100644 --- a/src/Packages/Passport/Runtime/Scripts/Public/PassportUI.cs +++ b/src/Packages/Passport/Runtime/Scripts/Public/PassportUI.cs @@ -547,6 +547,9 @@ private async void HandleLoginData(string jsonData) case "opted_in": loginOptions.marketingConsentStatus = MarketingConsentStatus.OptedIn; break; + case "subscribed": + loginOptions.marketingConsentStatus = MarketingConsentStatus.Subscribed; + break; case "unsubscribed": loginOptions.marketingConsentStatus = MarketingConsentStatus.Unsubscribed; break; diff --git a/src/Packages/Passport/Samples~/SamplesScenesScripts/Scripts/Passport/ImxRegister/ImxRegisterScript.cs b/src/Packages/Passport/Samples~/SamplesScenesScripts/Scripts/Passport/ImxRegister/ImxRegisterScript.cs index c634a43da..671c48bdd 100644 --- a/src/Packages/Passport/Samples~/SamplesScenesScripts/Scripts/Passport/ImxRegister/ImxRegisterScript.cs +++ b/src/Packages/Passport/Samples~/SamplesScenesScripts/Scripts/Passport/ImxRegister/ImxRegisterScript.cs @@ -43,7 +43,16 @@ public async void RegisterOffchain() } catch (PassportException e) { - ShowOutput($"Unable to register off-chain: {e.Message} ({e.Type})"); + // Handle 409 - account already registered + if (e.Type == PassportErrorType.USER_REGISTRATION_ERROR && + (e.Message.Contains("409") || e.Message.Contains("already registered"))) + { + ShowOutput("Passport account already registered"); + } + else + { + ShowOutput($"Unable to register off-chain: {e.Message} ({e.Type})"); + } } catch (Exception e) { @@ -58,4 +67,4 @@ private void ShowOutput(string message) Output.text = message; } } -} \ No newline at end of file +}