Server IP : 192.158.238.246 / Your IP : 18.191.158.217 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/7779/cwd/plugins/give/src/DonationForms/resources/registrars/gateways/ |
Upload File : |
import {Gateway, RegisteredGateway} from '@givewp/forms/types'; const {registeredGateways} = window.givewpDonationFormExports; /** * @since 3.0.0 */ interface GatewayRegistrar { register(gateway: Gateway): void; getAll(): Gateway[]; get(id: string): Gateway | undefined; } /** * @since 3.0.0 */ export default class Registrar implements GatewayRegistrar { /** * @since 3.0.0 */ private gateways: Gateway[] = []; /** * @since 3.0.0 */ public get(id: string): Gateway | undefined { return this.gateways.find((gateway) => gateway.id === id); } /** * @since 3.0.0 */ public getAll(): Gateway[] { return this.gateways; } /** * @since 3.0.0 */ public register(gateway: Gateway): void { const registeredGateway = registeredGateways?.find(({id}) => id === gateway.id); this.mapRegisteredGatewayToClientGateway(registeredGateway, gateway); if (gateway.hasOwnProperty('initialize')) { try { gateway.initialize(); } catch (e) { console.error(`Error initializing ${gateway.id} gateway:`, e); // TODO: decide what to do if a gateway fails to initialize // we can hide the fields from the list or display an error message. // for now we will just display the error message, but in the future // it might be better to hide the fields all together by returning early here. //return; } } this.gateways.push(gateway); } /** * @since 3.0.0 */ private mapRegisteredGatewayToClientGateway(registeredGateway: RegisteredGateway, clientGateway: Gateway): void { for (const [key, value] of Object.entries(registeredGateway)) { clientGateway[key] = value; } } }