@nevis-security/nevis-mobile-authentication-sdk-react
Version:
React Native plugin for Nevis Mobile Authentication SDK. Supports only mobile.
69 lines (61 loc) • 2.56 kB
text/typescript
/**
* Copyright © 2024 Nevis Security AG. All rights reserved.
*/
import { DeviceInformationMismatch } from './DeviceInformationMismatch';
import type { DeviceInformationCheckError } from '../../error/deviceInformation/check/DeviceInformationCheckError';
import { DeviceInformationCheckErrorConverter } from '../../error/deviceInformation/check/DeviceInformationCheckErrorConverter';
/**
* This is the result of the {@link DeviceInformationCheck} operation.
*
* If configuration mismatches in a given server could be found, but retrieving the server
* configuration failed for another server. The found mismatches will be returned by the
* {@link mismatches} property, and the error will be returned by the {@link errors} property.
*
* @see {@link DeviceInformationCheck}
*/
export abstract class DeviceInformationCheckResult {
/**
* Returns the mismatches configuration mismatches between the mobile SDK.
*
* **WARNING** \
* If your application has been upgraded from versions of the SDK previous to 3.8.0, and thus
* some users were registered using earlier versions, some false positive {@link MissingAuthenticatorInServer}
* mismatches can be returned for those users.
*/
abstract mismatches: Array<DeviceInformationMismatch>;
/**
* Returns the errors that occurred retrieving the configuration mismatches.
*
* @return the errors that occurred retrieving the configuration mismatches.
*/
abstract errors: Array<DeviceInformationCheckError>;
/**
* Alternate constructor that creates a {@link DeviceInformationCheckResult} from a json.
*
* @returns the created {@link DeviceInformationCheckResult} instance.
*/
static fromJson(json: any): DeviceInformationCheckResult {
return DeviceInformationCheckResultImpl.fromJson(json);
}
}
export class DeviceInformationCheckResultImpl extends DeviceInformationCheckResult {
mismatches: Array<DeviceInformationMismatch>;
errors: Array<DeviceInformationCheckError>;
constructor(
mismatches: Array<DeviceInformationMismatch>,
errors: Array<DeviceInformationCheckError>
) {
super();
this.mismatches = mismatches;
this.errors = errors;
}
static fromJson(json: any): DeviceInformationCheckResultImpl {
const mismatchesData = json.mismatches;
const errorsData = json.errors;
const mismatches = mismatchesData?.map(DeviceInformationMismatch.fromJson);
const errors = errorsData?.map((error: any) =>
new DeviceInformationCheckErrorConverter(error).convert()
);
return new DeviceInformationCheckResultImpl(mismatches || [], errors || []);
}
}