/** * Copyright © 2023 Nevis Security AG. All rights reserved. */ import { PinEnrollmentCustomValidationError } from './PinEnrollmentCustomValidationError'; import { PinEnrollmentError } from './PinEnrollmentError'; import { PinEnrollmentInvalidPinFormat } from './PinEnrollmentInvalidPinFormat'; import { ErrorConverter } from '../../ErrorConverter'; enum PinEnrollmentErrorType { CustomValidationError, InvalidPinFormat, } export class PinEnrollmentErrorConverter extends ErrorConverter { convert(): PinEnrollmentError { const subtype = PinEnrollmentErrorType[this.error.type as keyof typeof PinEnrollmentErrorType]; switch (subtype) { case PinEnrollmentErrorType.CustomValidationError: return new PinEnrollmentCustomValidationError( this.error.description, this.error.cause ); case PinEnrollmentErrorType.InvalidPinFormat: return new PinEnrollmentInvalidPinFormat(this.error.description, this.error.cause); } } }