var AffiliateHive = function () { this.BASE_URL = null; }; AffiliateHive.prototype.queryParams = function () { let url = window.location.href; let params = new URLSearchParams(url); const obj = {}; for (const [key, value] of params.entries()) { obj[key] = value; } return obj; } AffiliateHive.prototype.init = function (BASE_URL = null) { affiliateHive.BASE_URL = BASE_URL; let params = affiliateHive.queryParams(); let slug = params.slug; if (slug === undefined) return; let firstValue = Object.values(params)[0]; if (firstValue !== 'affiliate-hive') return; let expirationDate = new Date(); expirationDate.setDate(expirationDate.getDate() + 30); document.cookie = `affiliate-hive-slug=${slug}; expires=${expirationDate.toUTCString()}; path=/`; } AffiliateHive.prototype.trackOrder = async function (data) { if (affiliateHive.BASE_URL === null) { console.error('AffiliateHive: BASE_URL is not set.'); return; } let api = `${affiliateHive.BASE_URL}/api/affiliate-hive/track/order`; let slug = affiliateHive.readCookie('affiliate-hive-slug'); if (slug == undefined || slug == null || slug == false) return; data.affiliateHiveSlug = slug; let response = await fetch(api, { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: JSON.stringify(data) }); await response.json(); } AffiliateHive.prototype.readCookie = function (name) { const value = `; ${document.cookie}`; const parts = value.split(`; ${name}=`); if (parts.length === 2) return parts.pop().split(';').shift(); else return undefined; } var affiliateHive = new AffiliateHive();