Skip to content

Commit e3c5095

Browse files
MobileAuthRequestErrorDomain handled
1 parent 42d9fe6 commit e3c5095

File tree

3 files changed

+50
-0
lines changed

3 files changed

+50
-0
lines changed

OneWelcomeExampleApp.xcodeproj/project.pbxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,8 @@
152152
9E2988E5294A0D380025E1D7 /* AppIconDark.png in Resources */ = {isa = PBXBuildFile; fileRef = 9E2988E1294A0D380025E1D7 /* AppIconDark.png */; };
153153
9E4A871A294B48D600A6D14D /* WelcomeInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E4A8719294B48D600A6D14D /* WelcomeInteractor.swift */; };
154154
9E4A871B294B4A0300A6D14D /* WelcomeInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E4A8719294B48D600A6D14D /* WelcomeInteractor.swift */; };
155+
9E5D36432DA4553800781BFB /* MobileAuthRequestErrorDomainMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E5D36422DA4553800781BFB /* MobileAuthRequestErrorDomainMapping.swift */; };
156+
9E5D36442DA4553800781BFB /* MobileAuthRequestErrorDomainMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E5D36422DA4553800781BFB /* MobileAuthRequestErrorDomainMapping.swift */; };
155157
9EECB5B22948BC85006095DF /* ProfileInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EECB5B12948BC85006095DF /* ProfileInteractor.swift */; };
156158
9EECB5B32948BCB9006095DF /* ProfileInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EECB5B12948BC85006095DF /* ProfileInteractor.swift */; };
157159
9EFDEC2329D4777600521793 /* ErrorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EFDEC2029D4777600521793 /* ErrorExtension.swift */; };
@@ -465,6 +467,7 @@
465467
9E2988E0294A0D380025E1D7 /* AppIconDark--@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "AppIconDark--@3x.png"; sourceTree = "<group>"; };
466468
9E2988E1294A0D380025E1D7 /* AppIconDark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = AppIconDark.png; sourceTree = "<group>"; };
467469
9E4A8719294B48D600A6D14D /* WelcomeInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeInteractor.swift; sourceTree = "<group>"; };
470+
9E5D36422DA4553800781BFB /* MobileAuthRequestErrorDomainMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MobileAuthRequestErrorDomainMapping.swift; sourceTree = "<group>"; };
468471
9EECB5B12948BC85006095DF /* ProfileInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileInteractor.swift; sourceTree = "<group>"; };
469472
9EFDEC2029D4777600521793 /* ErrorExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ErrorExtension.swift; sourceTree = "<group>"; };
470473
9EFDEC2129D4777600521793 /* UIColorExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorExtension.swift; sourceTree = "<group>"; };
@@ -817,6 +820,7 @@
817820
575ED87F298BF2A10094CBFD /* FetchResourceErrorMapping.swift */,
818821
573335CD2B03C06E001B3B3C /* ChangePinErrorDomainMapping.swift */,
819822
57A343712B2C3C78001B47BE /* RegistrationErrorDomainMapping.swift */,
823+
9E5D36422DA4553800781BFB /* MobileAuthRequestErrorDomainMapping.swift */,
820824
);
821825
path = ErrorMappings;
822826
sourceTree = "<group>";
@@ -1250,6 +1254,7 @@
12501254
7E8A181D2113141C0063BDF4 /* ProfileViewController.swift in Sources */,
12511255
57850DA82BA307A2008622BA /* IdTokenPresenter.swift in Sources */,
12521256
7E01FDE92110AF7800DF0043 /* AuthenticatorsViewController.swift in Sources */,
1257+
9E5D36442DA4553800781BFB /* MobileAuthRequestErrorDomainMapping.swift in Sources */,
12531258
5731AFB5296EC93F00E6165D /* QRCodePresenter.swift in Sources */,
12541259
7EBF8B7E2121BBFC00C3D94E /* AuthenticatorRegistrationErrorDomainMapping.swift in Sources */,
12551260
7E241E04212D54C8008FCD9A /* FetchImplicitDataInteractor.swift in Sources */,
@@ -1370,6 +1375,7 @@
13701375
AD07D40528771F4F0095571A /* FetchImplicitDataInteractor.swift in Sources */,
13711376
AD07D40628771F4F0095571A /* InteractorAssembly.swift in Sources */,
13721377
AD07D40728771F4F0095571A /* ErrorMapper.swift in Sources */,
1378+
9E5D36432DA4553800781BFB /* MobileAuthRequestErrorDomainMapping.swift in Sources */,
13731379
AD07D40828771F4F0095571A /* PendingMobileAuthPresenter.swift in Sources */,
13741380
AD07D40928771F4F0095571A /* ChangePinEntity.swift in Sources */,
13751381
AD07D40A28771F4F0095571A /* FetchImplicitResourceErrorDomainMapping.swift in Sources */,

OneWelcomeExampleApp/ErrorMappings/ErrorMapper.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ class ErrorMapper {
3838
return ChangePinErrorDomainMapping().mapError(error)
3939
case ONGRegistrationErrorDomain:
4040
return RegistrationErrorDomainMapping().mapError(error)
41+
case ONGMobileAuthRequestErrorDomain:
42+
return MobileAuthRequestErrorDomainMapping().mapError(error)
4143
default:
4244
return AppError(errorDescription: "Something went wrong.")
4345
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// Copyright © 2025 OneWelcome. All rights reserved.
2+
3+
import Foundation
4+
5+
class MobileAuthRequestErrorDomainMapping {
6+
func mapError(_ error: Error) -> AppError {
7+
let title = "Mobile auth request error"
8+
9+
switch ONGMobileAuthRequestError(rawValue: error.code) {
10+
case .notFound:
11+
let errorDescription = "The user not found for mobile authentication."
12+
let recoverySuggestion = "Enroll for mobile authentication."
13+
return AppError(title: title, errorDescription: errorDescription, recoverySuggestion: recoverySuggestion)
14+
case .userDisenrolled:
15+
let errorDescription = "The user was disenrolled for mobile authentication."
16+
let recoverySuggestion = "Enroll for mobile authentication."
17+
return AppError(title: title, errorDescription: errorDescription, recoverySuggestion: recoverySuggestion)
18+
case .notEnrolled:
19+
let errorDescription = "The user is not enrolled for mobile authentication."
20+
let recoverySuggestion = "Enroll for mobile authentication."
21+
return AppError(title: title, errorDescription: errorDescription, recoverySuggestion: recoverySuggestion)
22+
23+
case .userNotAuthenticated:
24+
let errorDescription = "No user is currently authenticated."
25+
let recoverySuggestion = "Please authenticate user and try again."
26+
return AppError(title: title, errorDescription: errorDescription, recoverySuggestion: recoverySuggestion)
27+
28+
case .notHandleable:
29+
let errorDescription = "The mobile authentication request cannot be handled."
30+
let recoverySuggestion = "Please authenticate user and try again."
31+
return AppError(title: title, errorDescription: errorDescription, recoverySuggestion: recoverySuggestion)
32+
33+
case .alreadyHandled:
34+
let errorDescription = "The provided mobile authentication request is already being handled."
35+
let recoverySuggestion = "Please authenticate user and try again."
36+
return AppError(title: title, errorDescription: errorDescription, recoverySuggestion: recoverySuggestion)
37+
38+
default:
39+
return AppError(errorDescription: "Something went wrong.")
40+
}
41+
}
42+
}

0 commit comments

Comments
 (0)