mirror of
https://github.com/mosip/inji-wallet.git
synced 2026-01-09 21:48:04 -05:00
[INJIMOB-3550] | [INJIMOB-3551] Handle Verifier's Response for response_uri (#2089)
* [INJIMOB-3550] refactor: replace deprecated method sendErrorToVerifier Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com> * [INJIMOB-3550] refactor: log error details on auth failure - OVP Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com> * [INJIMOB-3551] refactor: change sendErrorToVerifier to sendErrorResponseToVerifier Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com> * [INJIMOB-3550] chore: update ovp kotlin lib version to 0.6.0-snapshot Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com> * [INJIMOB-3551] add: send userInfo from native module for ovp error Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com> * [INJIMOB-3551] chore: update ovp swift lib version Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com> --------- Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>
This commit is contained in:
committed by
GitHub
parent
995f9c23b0
commit
066833d3c7
@@ -873,7 +873,7 @@
|
||||
isa = XCRemoteSwiftPackageReference;
|
||||
repositoryURL = "https://github.com/mosip/inji-openid4vp-ios-swift.git";
|
||||
requirement = {
|
||||
branch = "release-0.5.x";
|
||||
branch = develop;
|
||||
kind = branch;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -78,8 +78,8 @@
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/mosip/inji-openid4vp-ios-swift.git",
|
||||
"state" : {
|
||||
"branch" : "release-0.5.x",
|
||||
"revision" : "b3ce7ef9f70229d76e01af89dcf92e7d9d677254"
|
||||
"branch" : "develop",
|
||||
"revision" : "9a2551d1a936c53e80e4ade6122543d606a99504"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -169,26 +169,30 @@ class RNOpenId4VpModule: NSObject, RCTBridgeModule {
|
||||
}
|
||||
}
|
||||
|
||||
@objc
|
||||
func sendErrorToVerifier(_ error: String, _ errorCode: String,
|
||||
resolver resolve: @escaping RCTPromiseResolveBlock,
|
||||
rejecter reject: @escaping RCTPromiseRejectBlock) {
|
||||
@objc
|
||||
func sendErrorToVerifier(_ error: String, _ errorCode: String,
|
||||
resolver resolve: @escaping RCTPromiseResolveBlock,
|
||||
rejecter reject: @escaping RCTPromiseRejectBlock) {
|
||||
Task {
|
||||
let exception: OpenID4VPException = {
|
||||
switch errorCode {
|
||||
case OpenID4VPErrorCodes.accessDenied:
|
||||
return AccessDenied(message: error, className: Self.moduleName())
|
||||
case OpenID4VPErrorCodes.invalidTransactionData:
|
||||
return InvalidTransactionData(message: error, className: Self.moduleName())
|
||||
default:
|
||||
return GenericFailure(message: error, className: Self.moduleName())
|
||||
}
|
||||
}()
|
||||
|
||||
await openID4VP?.sendErrorToVerifier(error: exception)
|
||||
resolve(true)
|
||||
let exception: OpenID4VPException = {
|
||||
switch errorCode {
|
||||
case OpenID4VPErrorCodes.accessDenied:
|
||||
return AccessDenied(message: error, className: Self.moduleName())
|
||||
case OpenID4VPErrorCodes.invalidTransactionData:
|
||||
return InvalidTransactionData(message: error, className: Self.moduleName())
|
||||
default:
|
||||
return GenericFailure(message: error, className: Self.moduleName())
|
||||
}
|
||||
}()
|
||||
|
||||
do {
|
||||
let verifierResponse = try await openID4VP?.sendErrorResponseToVerifier(error: exception)
|
||||
resolve(verifierResponse)
|
||||
} catch {
|
||||
rejectWithOpenID4VPError(error, reject: reject)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private func parseVerifiers(_ verifiers: [[String: Any]]) throws -> [Verifier] {
|
||||
return try verifiers.map { verifierDict in
|
||||
@@ -223,12 +227,22 @@ func sendErrorToVerifier(_ error: String, _ errorCode: String,
|
||||
}
|
||||
|
||||
func rejectWithOpenID4VPError(_ error: Error, reject: RCTPromiseRejectBlock) {
|
||||
if let openidError = error as? OpenID4VPException {
|
||||
reject(openidError.errorCode, openidError.message, openidError)
|
||||
} else {
|
||||
if let openidError = error as? OpenID4VPException {
|
||||
let errorMap: [String: Any] = [
|
||||
"errorCode": openidError.errorCode,
|
||||
"message": openidError.message,
|
||||
"response": openidError.response ?? ""
|
||||
]
|
||||
let nsError = NSError(
|
||||
domain: "OPENID4VP",
|
||||
code: 0,
|
||||
userInfo: errorMap
|
||||
)
|
||||
reject(openidError.errorCode, openidError.message, nsError)
|
||||
} else {
|
||||
let nsError = NSError(domain: error.localizedDescription, code: 0)
|
||||
reject("ERR_UNKNOWN", nsError.localizedDescription, nsError)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user