interface IError { code: string; name: string; message: string; action: string } const errorsMap = [ // General Errors { code : '001', name : 'unauthorizedAccess', message: 'Unauthorized Access' }, { code : '002', name : 'databaseError', message: 'Database error' }, { code : '003', name : 'inputParameterIsInvalid', message: 'Input parameter is invalid' }, { code : '004', name : 'systemError', message: 'System error' }, { code : '005', name : 'invalidMerchantID', message: 'Invalid Merchant ID' }, { code : '006', name : 'invalidPlayerPIN', message: 'Invalid Player PIN' }, { code : '007', name : 'unableToFindConnectionIdFromPaymentToken', message: 'Unable to find connection ID from Payment Token' }, { code : '008', name : 'sessionTimedOut', message: 'Session timed out' }, { code : '009', name : 'invalidStoreId', message: 'Invalid Store ID' }, { code : '010', name : 'unableToProcessThePreAuthorization', message: 'Unable to process the Pre-Authorization' }, { code : '011', name : 'errorAtCreateAlias', //TODO J.P its not decided if its gonna be used or not message: 'Error at create alias' }, { code : '012', name : 'invalidPlayerId', //TODO J.P its not decided if its gonna be used or not message: 'Invalid playerId' }, { code : '013', name : 'ticketValidationError', message: 'The tickets validations has error(s)' }, { code : '014', name : 'playerHasLiveToken', message: 'Player has LIVE token' }, { code : '015', name : 'unableToProcessSmartPick', message: 'Unable to process the smart pick from feed' }, //Authentication Errors { code : '101', name : 'invalidCredentials', message: 'Invalid Credentials' }, { code : '102', name : 'unableToGetAuthToken', message: 'Unable to get Auth Token' }, { code : '103', name : 'accountLockedDueToSeveralUnsuccessfulLoginAttempts', message: 'Account locked due to several unsuccessful login attempts' }, { code : '104', name : 'playerIsNotEnrolled', message: 'Player is not enrolled' }, { code : '105', name : 'playerAccountIsNotActive', message: 'Player account is not active' }, { code : '106', name : 'unableToCancelTransaction', message: 'Unable to cancel transaction' }, { code : '107', name : 'unableToConnectToBPPHost ', message: 'Unable to connect to BPP host' }, //Payment Errors { code : '201', name : 'invalidOrExpiredPaymentToken', message: 'Invalid or Expired Payment Token' }, { code : '202', name : 'errorProcessingPaymentTransaction', message: 'Error processing payment transaction' }, { code : '203', name : 'paymentTokenIsNotValidAtStoreMOPLocation', message: 'Payment Token is not valid at store MOP location' }, { code : '204', name : 'amountDoesNotMatch', message: 'Amount does not match' }, { code : '205', name : 'InsufficientFunds', message: 'Insufficient Funds' }, { code : '206', name : 'unableToCancelFundsAuthorization', message: 'Unable to cancel funds authorization' }, { code : '207', name : 'wrongAmountValue', //TODO J.P its not decided if its gonna be used or not message: 'Wrong amount value' }, { code : '208', name : 'paymentTransactionCouldNotBeCreated', //TODO J.P its not decided if its gonna be used or not message: 'The payment transaction could not be created. An Unknown error occurred' }, { code : '209', name : 'invalidTransaction', //TODO J.P its not decided if its gonna be used or not message: 'Invalid Transaction' }, { code : '210', name : 'errorsAtGetCreditCards', message: 'Getting the cards and bank info could not be retrieved' } ]; export class Errors { private errorsMap: Array; constructor() { this.errorsMap = errorsMap; } getErrorByName(name: string) { const respFilter = this.errorsMap.find(error => error.name === name); if (respFilter) { return respFilter; } return name; } }