@oxyhq/services
Version:
Reusable OxyHQ module to handle authentication, user management, karma system, device-based session management and more 🚀
60 lines (56 loc) • 1.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.OxyServicesAnalyticsMixin = OxyServicesAnalyticsMixin;
var _mixinHelpers = require("./mixinHelpers");
/**
* Analytics Methods Mixin
*
* Provides methods for analytics tracking and data retrieval
*/
function OxyServicesAnalyticsMixin(Base) {
return class extends Base {
constructor(...args) {
super(...args);
}
/**
* Track an analytics event
* @param eventName - Name of the event to track
* @param properties - Optional event properties
*/
async trackEvent(eventName, properties) {
try {
await this.makeRequest('POST', '/api/analytics/events', {
event: eventName,
properties
}, {
cache: false,
retry: false
}); // Don't retry analytics events
} catch (error) {
throw this.handleError(error);
}
}
/**
* Get analytics data for a date range
* @param startDate - Optional start date (ISO string)
* @param endDate - Optional end date (ISO string)
* @returns Analytics data
*/
async getAnalytics(startDate, endDate) {
try {
const params = {};
if (startDate) params.startDate = startDate;
if (endDate) params.endDate = endDate;
return await this.makeRequest('GET', '/api/analytics', params, {
cache: true,
cacheTTL: _mixinHelpers.CACHE_TIMES.LONG
});
} catch (error) {
throw this.handleError(error);
}
}
};
}
//# sourceMappingURL=OxyServices.analytics.js.map