introducing umami datat push features

This commit is contained in:
Antoine M 2024-01-31 19:43:36 +01:00
parent f8251d6169
commit 0555e3d5c4

View File

@ -1,10 +1,17 @@
import { useEffect, useState } from "react";
import { useLanguage } from "./useLanguage";
import axios from "axios";
const BASE_URL = "http://lhoist-stay-safe.local/wp-json/wp/v2";
const BASE_CUSTOM_URL = "http://lhoist-stay-safe.local/wp-json/lhoist-datas";
const apiToken = process.env.REACT_APP_API_TOKEN;
const UMAMI_API_TOKEN = process.env.REACT_APP_UMAMI_API_TOKEN;
const UMAMI_WEBSITE_ID = process.env.REACT_APP_UMAMI_WEBSITE_ID;
const UMAMI_API_BASE_ENDPOINT = process.env.REACT_APP_UMAMI_API_BASE_ENDPOINT;
const umamiBaseEndpoint = process.env.REACT_APP_UMAMI_API_BASE_ENDPOINT;
function useWordpressCustomData(url) {
const [data, setData] = useState();
const { language } = useLanguage();
@ -37,11 +44,12 @@ function useWordpressData(url) {
return data;
}
async function postWordpressStatisticsData(url) {
async function postWordpressStatisticsData(url, language) {
const requestData = {
user_name: "Antoine",
user_locale: "fr",
user_country: "France",
user_name: "Michel",
user_locale: language,
user_country: "Belgium",
level_post_id: 154,
level_is_completed: 0,
level_completion_time: 20000,
@ -68,4 +76,81 @@ async function postWordpressStatisticsData(url) {
console.error(error);
}
}
export { useWordpressData, useWordpressCustomData, postWordpressStatisticsData };
function useUmamiDatas() {
const umamiUrl = "https://umami.deligraph.be/api/websites";
const bearerToken =
"Ii96P0XNdBE0gD0l8lX5Qf3+Lt7T0RsEoWUjf8qNaifyPbhi/PXmGygkIHuGbMm6bJ9iHPe9pIzfBJeFvG+ehlQSd4MWuWr3xKEmxtcwDMOlN4aDo3rlSf9phB02sjx0QcBhngfl0p9g/nI30d1XTWvHspw5BCNT7+NRzb5gDa24tbbSS/a/wL9+TN+mCjCUsaMOt9o/t0D3kNtE6qSgK4gAFijbDBXsgjbiPwb3HemrEb19JfY9gtMMpwBVE2KKst0j6kyKUWWDeJiBz3LQHO+FSthwG9tQCovVFgHNzLh+L+6fcmUkEpDC3nA62UCPmVAy3zJgjFWgtVZdXaSeFm7mLF1/Wsqk3g==";
const [data, setData] = useState();
useEffect(() => {
const dataFetch = async () => {
const data = await (
await fetch(umamiUrl, {
method: "GET",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${bearerToken}`,
},
})
).json();
setData(data);
};
dataFetch();
}, []);
return data;
}
function useUmamiUpdateDatas() {
const [result, setResult] = useState(null); // État local pour stocker le résultat
const eventName = "event-name-de-test";
const UMAMI_SEND_URL = UMAMI_API_BASE_ENDPOINT + "/send";
const dataPayload = {
payload: {
hostname: window.location.hostname,
language: navigator.language,
referrer: document.referrer,
screen: `${window.screen.width}x${window.screen.height}`,
title: document.title,
url: window.location.pathname,
website: UMAMI_WEBSITE_ID,
name: "puzzle-1-complete",
data: {
lang: "fr",
country: "France",
level_post_id: 154,
level_is_completed: 0,
level_completion_time: 20000,
level_score: 12,
},
},
type: "event",
};
useEffect(() => {
const dataFetch = async () => {
try {
await axios.post(UMAMI_SEND_URL, dataPayload, {
headers: {
"User-Agent": navigator.userAgent,
},
});
setResult(`Event '${eventName}' sent successfully to Umami.`);
console.log(`Event '${eventName}' sent successfully to Umami.`);
} catch (error) {
setResult("Error sending Umami event:");
console.error("Error sending Umami event:", error);
}
};
dataFetch();
}, []);
return result;
}
export { useWordpressData, useWordpressCustomData, postWordpressStatisticsData, useUmamiDatas, useUmamiUpdateDatas };