@nevis-security/nevis-mobile-authentication-sdk-react
Version:
React Native plugin for Nevis Mobile Authentication SDK. Supports only mobile.
56 lines (50 loc) • 2.36 kB
text/typescript
/**
* Copyright © 2023-2024 Nevis Security AG. All rights reserved.
*/
import { BiometricUserVerificationContext } from '../../operations/userverification/BiometricUserVerificationContext';
import { DevicePasscodeUserVerificationContext } from '../../operations/userverification/DevicePasscodeUserVerificationContext';
import { FingerprintUserVerificationContext } from '../../operations/userverification/FingerprintUserVerificationContext';
import { PasswordUserVerificationContext } from '../../operations/userverification/PasswordUserVerificationContext';
import { PinUserVerificationContext } from '../../operations/userverification/PinUserVerificationContext';
import { UserVerificationContext } from '../../operations/userverification/UserVerificationContext';
enum UserVerificationContextType {
PinUserVerificationContext,
PasswordUserVerificationContext,
BiometricUserVerificationContext,
DevicePasscodeUserVerificationContext,
FingerprintUserVerificationContext,
}
export class TypedUserVerificationContext {
wrapped: UserVerificationContext;
constructor(userVerificationContext: UserVerificationContext) {
this.wrapped = userVerificationContext;
}
static fromJson(json: any): TypedUserVerificationContext {
const subtype =
UserVerificationContextType[json.type as keyof typeof UserVerificationContextType];
switch (subtype) {
case UserVerificationContextType.PinUserVerificationContext:
return new TypedUserVerificationContext(
PinUserVerificationContext.fromJson(json.data)
);
case UserVerificationContextType.PasswordUserVerificationContext:
return new TypedUserVerificationContext(
PasswordUserVerificationContext.fromJson(json.data)
);
case UserVerificationContextType.BiometricUserVerificationContext:
return new TypedUserVerificationContext(
BiometricUserVerificationContext.fromJson(json.data)
);
case UserVerificationContextType.DevicePasscodeUserVerificationContext:
return new TypedUserVerificationContext(
DevicePasscodeUserVerificationContext.fromJson(json.data)
);
case UserVerificationContextType.FingerprintUserVerificationContext:
return new TypedUserVerificationContext(
FingerprintUserVerificationContext.fromJson(json.data)
);
default:
throw new Error(`Unknown user verification context (${json.type}).`);
}
}
}