import { CardService } from '@everisinnovationbot/banc_sabadell_services'; import { CardDFManager } from '@everisinnovationbot/dialog_flow_managers'; import { SuggestionDFManager } from "../../managers/dialogflow/suggestion.manager" import { IntentsCardsDFManager } from "../../managers/dialogflow/cards.manager" export class CardIntents { private cardService: CardService = new CardService(); public intents(app): void { //CARROUSEL DE TARJETAS app.intent('Cards', async (conv) => { conv.contexts.set('parentoperativectx', 5, { 'parentoperativectx': 'cards' }); let cards = await this.cardService.getCards(conv.user.access.token); if(cards) { if (conv.surface.capabilities.has('actions.capability.SCREEN_OUTPUT')) { const cardsSimpleResponseScreen = CardDFManager.generateCardsSimpleResponseScreen(cards); const cardsCarousel = CardDFManager.generateCardsCarousel(cards); conv.ask(cardsSimpleResponseScreen); conv.ask(cardsCarousel); } else { const cardsSimpleResponseNoScreen = CardDFManager.generateCardsSimpleResponseNoScreen(cards); const cardsCarousel = CardDFManager.generateCardsCarousel(cards); conv.ask(cardsSimpleResponseNoScreen); conv.ask(cardsCarousel); } } else { IntentsCardsDFManager.cardNullResponse(conv); } }); //TARJETA SELECCIONADA app.intent('Cards selected', async (conv, input, option) => { await IntentsCardsDFManager.getIntentCardSelected(conv, option, null); }) //SALDO TARJETA app.intent('Cards balance', async (conv, { last4numbersCard }) => { await IntentsCardsDFManager.getIntentCardBalance(conv, last4numbersCard); }); //MOVIMIENTOS app.intent('Cards movements', async (conv, { last4numbersCard }) => { await IntentsCardsDFManager.getIntentCardMovements(conv, last4numbersCard); }) //FECHA LIQUIDACION TARJETA app.intent('Cards settlement date', async (conv, { last4numbersCard }) => { let _last4numbers = last4numbersCard ? last4numbersCard : (conv.contexts.input.last4numberscardctx ? conv.contexts.input.last4numberscardctx.parameters.last4numberscardctx : null); let card = await IntentsCardsDFManager.getCard(conv, _last4numbers); if (card) { const response = CardDFManager.generateSettlementCardResponse(card, _last4numbers); conv.ask(response); conv.ask(SuggestionDFManager.generateCardSuggestions()); } else { IntentsCardsDFManager.cardNullResponse(conv); } }); //LIMITES TARJETA app.intent('Cards limits', async (conv, { last4numbersCard }) => { let _last4numbers = last4numbersCard ? last4numbersCard : (conv.contexts.input.last4numberscardctx ? conv.contexts.input.last4numberscardctx.parameters.last4numberscardctx : null); let card = await IntentsCardsDFManager.getCard(conv, _last4numbers); if (card) { const response = CardDFManager.generateLimitsCardResponse(card, _last4numbers); conv.ask(response); conv.ask(SuggestionDFManager.generateCardSuggestions()); } else { IntentsCardsDFManager.cardNullResponse(conv); } }); } }