projects/ng-payment-card/src/lib/service/payment-card.service.ts
Properties |
|
Methods |
|
Static getCardType | ||||||
getCardType(ccNum: string)
|
||||||
Return card type based on card number
Parameters :
Returns :
string | null
|
Static getMonths |
getMonths()
|
Return months in numerical format
Returns :
Array<Month>
|
Static getYears |
getYears()
|
Return years based on current year
Returns :
Array<number>
|
Private Static Readonly cardTypes |
Type : CardTypesContainer
|
Default value : CARD_TYPES
|
Collection of card types |
import { Injectable } from '@angular/core';
import { default as CARD_TYPES, CardTypesContainer } from '../domain/card-types';
import { Month } from '../domain/month.enum';
@Injectable()
export class PaymentCardService {
/**
* Collection of card types
*/
private static readonly cardTypes: CardTypesContainer = CARD_TYPES;
/**
* Return card type based on card number
*/
public static getCardType(ccNum: string): string | null {
for (const [key, val] of Array.from(PaymentCardService.cardTypes.entries())) {
if (
ccNum
.split(new RegExp('[ \\-]'))
.join('')
.match(val)
) {
return key;
}
}
return null;
}
/**
* Return months in numerical format
*/
public static getMonths(): Array<Month> {
const months: Array<Month> = [];
for (const key of Object.keys(Month)) {
months.push(Month[key]);
}
return months;
}
/**
* Return years based on current year
*/
public static getYears(): Array<number> {
const years: Array<number> = [];
const year = new Date().getFullYear();
for (let i = -2; i < 5; i++) {
years.push(year + i);
}
return years;
}
}