import { CardService } from '@everisinnovationbot/banc_sabadell_services'; import { CardDFManager } from '@everisinnovationbot/dialog_flow_managers'; import { SuggestionDFManager } from "../../managers/dialogflow/suggestion.manager"; import { CardManager } from '@everisinnovationbot/shared'; export class IntentsCardsDFManager { public static cardService: CardService = new CardService(); public static async getIntentCardBalance(conv, last4numbersCard) { console.log("PTG"); let _last4numbers = last4numbersCard ? last4numbersCard : (conv.contexts.input.last4numberscardctx ? conv.contexts.input.last4numberscardctx.parameters.last4numberscardctx : null); console.log("PTG1: ", _last4numbers); let card = await this.getCard(conv, _last4numbers); console.log("PTG2: ", card); if (card) { const response = CardDFManager.generateBalanceCardResponse(card, _last4numbers); conv.ask(response); conv.ask(SuggestionDFManager.generateCardSuggestions()); } else { this.cardNullResponse(conv); } } public static async getIntentCardMovements(conv, last4numbersCard) { let _last4numbers = last4numbersCard ? last4numbersCard : (conv.contexts.input.last4numberscardctx ? conv.contexts.input.last4numberscardctx.parameters.last4numberscardctx : null); let card = await this.getCard(conv, _last4numbers); if (card) { const movements = card.currentMonthDetail; if (conv.surface.capabilities.has('actions.capability.SCREEN_OUTPUT')) { if (movements.length > 1) { const cardMovementsListSimpleResponse = CardDFManager.generateMovementsCardListSimpleResponse(movements); conv.ask(cardMovementsListSimpleResponse); const cardMovementsTable = CardDFManager.generateMovementsCardTable(movements); conv.ask(cardMovementsTable); // const cardMovementsList = CardDFManager.generateMovementsCardList(movements); // conv.ask(cardMovementsList); } else { const cardMovementsSimpleResponse = CardDFManager.generateMovementsCardSimpleResponse(movements); conv.ask(cardMovementsSimpleResponse); } } else { const cardMovementsSimpleResponse = CardDFManager.generateMovementsCardSimpleResponse(movements); conv.ask(cardMovementsSimpleResponse); } conv.ask(SuggestionDFManager.generateCardSuggestions()); } else { this.cardNullResponse(conv); } } public static async getIntentCardSelected(conv, option, last4numbers) { conv.contexts.set('parentoperativectx', 5, { 'parentoperativectx': 'cards' }); let cards = await this.cardService.getCards(conv.user.access.token); const cardSelected = option ? CardManager.getCardByOption(cards, option) : CardManager.getCardByLast4(cards, last4numbers); if (cardSelected) { const response = CardDFManager.generateSelectedCardSimpleResponse(cardSelected.last4Numbers); let last4numbersCardCtx = cardSelected.last4Numbers; conv.contexts.set('last4numberscardctx', 5, { 'last4numberscardctx': last4numbersCardCtx }); conv.ask(response); conv.ask(SuggestionDFManager.generateCardSuggestions()); } else { IntentsCardsDFManager.cardNullResponse(conv); } } public static async getCard(conv, _last4numbers) { conv.contexts.set('last4numberscardctx', 5, { 'last4numberscardctx': _last4numbers }); conv.contexts.set('parentoperativectx', 5, { 'parentoperativectx': 'cards' }); let card = await this.cardService.getCardDetail(_last4numbers, conv.user.access.token); return card; } public static cardNullResponse(conv) { const response = CardDFManager.generateCardNullResponse(); conv.ask(response); } }