import axios from "axios"; const port = process.env.ANALYTICS_PORT; const basePath = process.env.IS_LOCAL === "true" ? `http://127.0.0.1:${port}` : "http://analytics"; const analyticsUrl = `${basePath}/analytics`; export interface UtmData { _id: string; event: string; user: string; account: string; utm: string; visitCount: number; visitCountUnique: number; clicks: number; createdAt: string; updatedAt: string; } export class AnalyticsClient { async getUtmDataByUtm(params: { utm: string }): Promise { const { utm } = params; const response = await axios.get(`${analyticsUrl}/utm/${utm}`); return response?.data; } async getUtmsOfEvent(params: { token: string; accountId: string; eventId: string }): Promise { const { token, accountId, eventId } = params; const response = await axios.get(`${analyticsUrl}/utm/getUtmsOfEvent/${accountId}/${eventId}`, { headers: { jwt: `${token}` }, }); return response?.data; } async incUtmCount(params: { utm: string; action: string; accountId: string; eventId: string }): Promise { const { utm, action, accountId, eventId } = params; const response = await axios.put(`${analyticsUrl}/utm/inc/${accountId}/${eventId}`, { utm, action, }); return response?.data; } async getUtmDataByUtms(params: { utms: string[] }): Promise { const { utms } = params; const response = await axios.post(`${analyticsUrl}/utm/getUtmDataByUtms`, { utms }); return response?.data; } }