mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-08-26 06:09:41 +00:00
feat: handle card status changed webhook
This commit is contained in:
109
src/card/mappers/card-status-description.mapper.ts
Normal file
109
src/card/mappers/card-status-description.mapper.ts
Normal file
@ -0,0 +1,109 @@
|
||||
import { UserLocale } from '~/core/enums';
|
||||
import { CardStatusDescription } from '../enums';
|
||||
|
||||
export const CardStatusMapper: Record<CardStatusDescription, { [key in UserLocale]: { description: string } }> = {
|
||||
[CardStatusDescription.NORMAL]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card is active' },
|
||||
[UserLocale.ARABIC]: { description: 'البطاقة نشطة' },
|
||||
},
|
||||
[CardStatusDescription.NOT_YET_ISSUED]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card is not yet issued' },
|
||||
[UserLocale.ARABIC]: { description: 'البطاقة لم تصدر بعد' },
|
||||
},
|
||||
[CardStatusDescription.PENDING_ISSUANCE]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card is pending issuance' },
|
||||
[UserLocale.ARABIC]: { description: 'البطاقة قيد الإصدار' },
|
||||
},
|
||||
[CardStatusDescription.CARD_EXTRACTED]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card has been extracted' },
|
||||
[UserLocale.ARABIC]: { description: 'تم استخراج البطاقة' },
|
||||
},
|
||||
[CardStatusDescription.EXTRACTION_FAILED]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card extraction has failed' },
|
||||
[UserLocale.ARABIC]: { description: 'فشل استخراج البطاقة' },
|
||||
},
|
||||
[CardStatusDescription.FAILED_PRINTING_BULK]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card printing in bulk has failed' },
|
||||
[UserLocale.ARABIC]: { description: 'فشل الطباعة بالجملة للبطاقة' },
|
||||
},
|
||||
[CardStatusDescription.FAILED_PRINTING_INST]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card printing in institution has failed' },
|
||||
[UserLocale.ARABIC]: { description: 'فشل الطباعة في المؤسسة للبطاقة' },
|
||||
},
|
||||
[CardStatusDescription.PENDING_ACTIVATION]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card is pending activation' },
|
||||
[UserLocale.ARABIC]: { description: 'البطاقة قيد التفعيل' },
|
||||
},
|
||||
[CardStatusDescription.PENDING_PIN]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card is pending PIN' },
|
||||
[UserLocale.ARABIC]: { description: 'البطاقة قيد الانتظار لرقم التعريف الشخصي' },
|
||||
},
|
||||
[CardStatusDescription.PREPARE_TO_CLOSE]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card is being prepared for closure' },
|
||||
[UserLocale.ARABIC]: { description: 'البطاقة قيد التحضير للإغلاق' },
|
||||
},
|
||||
[CardStatusDescription.PIN_TRIES_EXCEEDED]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card PIN tries have been exceeded' },
|
||||
[UserLocale.ARABIC]: { description: 'تم تجاوز محاولات رقم التعريف الشخصي للبطاقة' },
|
||||
},
|
||||
[CardStatusDescription.CARD_EXPIRED]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card has expired' },
|
||||
[UserLocale.ARABIC]: { description: 'انتهت صلاحية البطاقة' },
|
||||
},
|
||||
[CardStatusDescription.LOST]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card is lost' },
|
||||
[UserLocale.ARABIC]: { description: 'البطاقة ضائعة' },
|
||||
},
|
||||
[CardStatusDescription.STOLEN]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card is stolen' },
|
||||
[UserLocale.ARABIC]: { description: 'البطاقة مسروقة' },
|
||||
},
|
||||
[CardStatusDescription.CUSTOMER_CLOSE]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card is being closed by the customer' },
|
||||
[UserLocale.ARABIC]: { description: 'البطاقة قيد الإغلاق من قبل العميل' },
|
||||
},
|
||||
[CardStatusDescription.BANK_CANCELLED]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card has been cancelled by the bank' },
|
||||
[UserLocale.ARABIC]: { description: 'البطاقة ألغيت من قبل البنك' },
|
||||
},
|
||||
[CardStatusDescription.FRAUD]: {
|
||||
[UserLocale.ENGLISH]: { description: 'Fraud' },
|
||||
[UserLocale.ARABIC]: { description: 'احتيال' },
|
||||
},
|
||||
[CardStatusDescription.DAMAGED]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card is damaged' },
|
||||
[UserLocale.ARABIC]: { description: 'البطاقة تالفة' },
|
||||
},
|
||||
[CardStatusDescription.SAFE_BLOCK]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card is in a safe block' },
|
||||
[UserLocale.ARABIC]: { description: 'البطاقة في حظر آمن' },
|
||||
},
|
||||
[CardStatusDescription.TEMPORARY_BLOCK]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card is in a temporary block' },
|
||||
[UserLocale.ARABIC]: { description: 'البطاقة في حظر مؤقت' },
|
||||
},
|
||||
[CardStatusDescription.RISK_BLOCK]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card is in a risk block' },
|
||||
[UserLocale.ARABIC]: { description: 'البطاقة في حظر المخاطر' },
|
||||
},
|
||||
[CardStatusDescription.OVERDRAFT]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card is in overdraft' },
|
||||
[UserLocale.ARABIC]: { description: 'البطاقة في السحب على المكشوف' },
|
||||
},
|
||||
[CardStatusDescription.BLOCKED_FOR_FEES]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card is blocked for fees' },
|
||||
[UserLocale.ARABIC]: { description: 'البطاقة محظورة للرسوم' },
|
||||
},
|
||||
[CardStatusDescription.CLOSED_CUSTOMER_DEAD]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card is closed because the customer is dead' },
|
||||
[UserLocale.ARABIC]: { description: 'البطاقة مغلقة لأن العميل متوفى' },
|
||||
},
|
||||
[CardStatusDescription.RETURN_CARD]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card is being returned' },
|
||||
[UserLocale.ARABIC]: { description: 'البطاقة قيد الإرجاع' },
|
||||
},
|
||||
[CardStatusDescription.UNKNOWN]: {
|
||||
[UserLocale.ENGLISH]: { description: 'The card status is unknown' },
|
||||
[UserLocale.ARABIC]: { description: 'حالة البطاقة غير معروفة' },
|
||||
},
|
||||
};
|
37
src/card/mappers/card-status.mapper.ts
Normal file
37
src/card/mappers/card-status.mapper.ts
Normal file
@ -0,0 +1,37 @@
|
||||
import { CardStatus, CardStatusDescription } from '../enums';
|
||||
|
||||
export const CardStatusMapper: Record<string, { description: CardStatusDescription; status: CardStatus }> = {
|
||||
//ACTIVE
|
||||
'00': { description: CardStatusDescription.NORMAL, status: CardStatus.ACTIVE },
|
||||
|
||||
//PENDING
|
||||
'02': { description: CardStatusDescription.NOT_YET_ISSUED, status: CardStatus.PENDING },
|
||||
'20': { description: CardStatusDescription.PENDING_ISSUANCE, status: CardStatus.PENDING },
|
||||
'21': { description: CardStatusDescription.CARD_EXTRACTED, status: CardStatus.PENDING },
|
||||
'22': { description: CardStatusDescription.EXTRACTION_FAILED, status: CardStatus.PENDING },
|
||||
'23': { description: CardStatusDescription.FAILED_PRINTING_BULK, status: CardStatus.PENDING },
|
||||
'24': { description: CardStatusDescription.FAILED_PRINTING_INST, status: CardStatus.PENDING },
|
||||
'30': { description: CardStatusDescription.PENDING_ACTIVATION, status: CardStatus.PENDING },
|
||||
'27': { description: CardStatusDescription.PENDING_PIN, status: CardStatus.PENDING },
|
||||
'16': { description: CardStatusDescription.PREPARE_TO_CLOSE, status: CardStatus.PENDING },
|
||||
|
||||
//BLOCKED
|
||||
'01': { description: CardStatusDescription.PIN_TRIES_EXCEEDED, status: CardStatus.BLOCKED },
|
||||
'03': { description: CardStatusDescription.CARD_EXPIRED, status: CardStatus.BLOCKED },
|
||||
'04': { description: CardStatusDescription.LOST, status: CardStatus.BLOCKED },
|
||||
'05': { description: CardStatusDescription.STOLEN, status: CardStatus.BLOCKED },
|
||||
'06': { description: CardStatusDescription.CUSTOMER_CLOSE, status: CardStatus.BLOCKED },
|
||||
'07': { description: CardStatusDescription.BANK_CANCELLED, status: CardStatus.BLOCKED },
|
||||
'08': { description: CardStatusDescription.FRAUD, status: CardStatus.BLOCKED },
|
||||
'09': { description: CardStatusDescription.DAMAGED, status: CardStatus.BLOCKED },
|
||||
'50': { description: CardStatusDescription.SAFE_BLOCK, status: CardStatus.BLOCKED },
|
||||
'51': { description: CardStatusDescription.TEMPORARY_BLOCK, status: CardStatus.BLOCKED },
|
||||
'52': { description: CardStatusDescription.RISK_BLOCK, status: CardStatus.BLOCKED },
|
||||
'53': { description: CardStatusDescription.OVERDRAFT, status: CardStatus.BLOCKED },
|
||||
'54': { description: CardStatusDescription.BLOCKED_FOR_FEES, status: CardStatus.BLOCKED },
|
||||
'67': { description: CardStatusDescription.CLOSED_CUSTOMER_DEAD, status: CardStatus.BLOCKED },
|
||||
'75': { description: CardStatusDescription.RETURN_CARD, status: CardStatus.BLOCKED },
|
||||
|
||||
//Fallback
|
||||
'99': { description: CardStatusDescription.UNKNOWN, status: CardStatus.PENDING },
|
||||
};
|
Reference in New Issue
Block a user