refactor: Move the tracking model into commons
parent
2963e089d8
commit
22ded2ec38
@ -0,0 +1,16 @@
|
||||
export enum TrackerEvent {
|
||||
LOG_IN = "LOG_IN",
|
||||
LOG_OUT = "LOG_OUT",
|
||||
START_LEARNING = "START_LEARNING",
|
||||
CANCEL_LEARNING = "CANCEL_LEARNING",
|
||||
FINISH_LEARNING = "FINISH_LEARNING",
|
||||
};
|
||||
|
||||
export interface ITrackerRequest {
|
||||
session: string;
|
||||
event: TrackerEvent;
|
||||
};
|
||||
|
||||
export type ITrackerDBModel = ITrackerRequest & {
|
||||
timestamp: number;
|
||||
};
|
@ -0,0 +1,21 @@
|
||||
import { TrackerEvent } from "../models/tracker";
|
||||
|
||||
import { BACKEND_URL } from "../config.in";
|
||||
|
||||
// Sends a tracker event to the remote API
|
||||
// @event: The kind of event to track
|
||||
export function trackAction(event: TrackerEvent) {
|
||||
// Get the tracker ID
|
||||
const sid = window.sessionStorage.getItem("tracker_session");
|
||||
|
||||
fetch(`${BACKEND_URL}/api/tracker`, {
|
||||
headers: new Headers({
|
||||
"Content-Type": "application/json",
|
||||
}),
|
||||
method: "POST",
|
||||
body: JSON.stringify({
|
||||
session: sid,
|
||||
event,
|
||||
}),
|
||||
});
|
||||
};
|
@ -0,0 +1 @@
|
||||
../../../common/models/tracker.ts
|
Reference in New Issue