import { Logger } from "../../../commons/utils/logger"; import { Event, EventType } from "../../../event/core/event"; /** * Mail click event. * * @export * @class MailClickEvent * @extends {Event} */ export class MailClickEvent extends Event { /** * Create MailClickEvent from click data. * * @static * @param {string} clickData * @return {MailClickEvent} * @memberof MailClickEvent */ public static fromClickData(clickData: string): MailClickEvent { try { const { id, product, attempt } = JSON.parse(atob(clickData)); return new MailClickEvent(id, product, attempt); } catch (err) { Logger.log(new Error(`Unable to parse clickData: "${clickData}"`)); return null; } } public type: EventType = EventType.MailClick; /** *Creates an instance of MailClickEvent. * @param {string} id * @param {string} product * @param {string} attempt * @memberof MailClickEvent */ constructor(public id: string, public product: string, public attempt: string, public channel?: string) { super(); } }