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