Files
inji-wallet/ios/RNVCVerifierModule.swift
KiruthikaJeyashankar 5589ceb848 [INJIMOB-3647] refactor: enhance response structure of credential status check (#2145)
* [INJIMOB-3647] refactor: udpate vc verifier RN module

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>

* [INJIMOB-3647] refactor: update reverification logic

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>

* [INJIMOB-3647] refactor: modify status response structure

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>

* [INJIMOB-3647] refactor: update response resolving of status check in swift bridge

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>

* [INJIMOB-3647] refactor: update info logs to print status message

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>

* [INJIMOB-3647] refactor: modify type from map to record

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>

* [INJIMOB-3647] refactor: remove unnecessary async function

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>

* [INJIMOB-3647] refactor: Credential summary result structure

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>

---------

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>
2025-11-27 15:33:17 +05:30

51 lines
1.8 KiB
Swift

import Foundation
import React
@objc(VCVerifierModule)
class VCVerifierModule: NSObject, RCTBridgeModule {
static func moduleName() -> String {
return "VCVerifier"
}
static func requiresMainQueueSetup() -> Bool {
return false
}
@objc
func getCredentialStatus(
_ credential: String,
format: String,
resolve: @escaping RCTPromiseResolveBlock,
reject: @escaping RCTPromiseRejectBlock
) {
Task {
do {
guard let credentialFormat = StatusCheckCredentialFormat(rawValue: format) else {
reject("INVALID_FORMAT", "Unsupported credential format: \(format)", nil)
return
}
let verifier = CredentialsVerifier()
let results = try await verifier.getCredentialStatus(credential: credential, format: credentialFormat)
var response: [String: Any] = [:]
for (purpose, credentialStatusResult) in results {
let error : [String: Any]? = credentialStatusResult.error != nil ? [
"code": credentialStatusResult.error?.errorCode ?? "UNKNOWN_ERROR",
"message": credentialStatusResult.error?.message ?? "An unknown error occurred"
] : nil
response[purpose] = [
"isValid": credentialStatusResult.isValid,
"statusListVC": credentialStatusResult.statusListVC,
"error": error
]
}
resolve(response)
} catch {
reject("VERIFICATION_FAILED", "Verification threw an error: \(error.localizedDescription)", error)
}
}
}
}