UNPKG

@malga-checkout/core

Version:
41 lines (40 loc) 1.69 kB
import { Sessions } from '../../services/sessions'; import settings from '../../stores/settings'; import { setThemeBackgroundColor, setThemeErrorColors, setThemePrimaryColors, setThemeSuccessColors, setThemeWarningColors, } from './malga-payments-session.utils'; import { t } from '@malga-checkout/i18n'; export class MalgaPaymentsSessionService { constructor({ onShowDialog }) { this.session = new Sessions(); this.onShowDialog = onShowDialog; } handleFailed() { if (settings.dialogConfig.show) { this.onShowDialog({ open: true, mode: 'error', errorMessage: t('dialogs.session.errorMessage', settings.locale), }); } } async findSession(sessionId) { try { const session = await this.session.find(sessionId); settings.merchantId = session.merchantId; settings.transactionConfig = Object.assign(Object.assign({}, settings.transactionConfig), session.transactionConfig); settings.dialogConfig = Object.assign(Object.assign({}, settings.dialogConfig), { pixFilledProgressBarColor: session.customization.primaryColor.medium, pixEmptyProgressBarColor: session.customization.primaryColor.lightest }); settings.paymentMethods = session.checkoutPaymentMethods; this.customize(session.customization); return session; } catch (error) { this.handleFailed(); } } customize(customization) { setThemePrimaryColors(customization.primaryColor); setThemeWarningColors(customization.warningColor); setThemeErrorColors(customization.errorColor); setThemeSuccessColors(customization.successColor); setThemeBackgroundColor(customization.backgroundColor); } }