feat: ajoute la date de mise à jour des stats

wip-related-pages
sebastien.arod@gmail.com 2024-06-04 14:58:54 +02:00
parent 5279983ae8
commit 39eb9b08b4
2 changed files with 47 additions and 2 deletions

View File

@ -27,9 +27,11 @@ import { computeELStats } from "./statistiques/computeELStats";
console.log(consistencyIssues);
}
const currentDate = new Date(Date.now());
console.log("Building statistics...");
const resistantCountStats = computeELStats(families);
console.log("Publishing statistics...");
publishStatisticsToNotion(resistantCountStats, notionClient);
publishStatisticsToNotion(resistantCountStats, currentDate, notionClient);
})();

View File

@ -1,5 +1,7 @@
import { Client } from "@notionhq/client";
import { Client, isFullBlock } from "@notionhq/client";
import { ELStats } from "../../statistiques/ELStats";
import { listAllChildrenBlocks } from "../utils/listAllChildrenBlocks";
import { richTextToPlainText } from "../utils/text/richTextToPlainText";
import { publishPeriodStats } from "./publishPeriodStats";
import { publishStatsActuelles } from "./publishStatsActuelles";
@ -10,11 +12,52 @@ const yearStatsDb = "4b19a72aa07840eab948525ea41878ee";
const monthStatsDb = "8418a8a4a7544f6a8c54e6003be7efe5";
export async function publishStatisticsToNotion(
stats: ELStats,
currentDate: Date,
notionClient: Client
) {
await updateUpdateDate(notionClient, currentDate);
await publishStatsActuelles(notionClient, stats.actuelles);
await publishPeriodStats(notionClient, yearStatsDb, stats.annees);
await publishPeriodStats(notionClient, monthStatsDb, stats.mois);
}
async function updateUpdateDate(notionClient: Client, updateDate: Date) {
const childrenBlocks = (
await listAllChildrenBlocks(notionClient, {
block_id: statsPageId,
})
).filter(isFullBlock);
const blockTextPrefix = "Dernière mise à jour des statistiques : ";
const block = childrenBlocks.find(
(b) =>
b.type === "paragraph" &&
richTextToPlainText(b.paragraph.rich_text).startsWith(blockTextPrefix)
);
if (!block) {
console.log(`Could not find block starting with "${blockTextPrefix}"`);
return;
}
await notionClient.blocks.update({
block_id: block?.id,
paragraph: {
rich_text: [
{
text: {
content: blockTextPrefix,
},
},
{
mention: {
date: {
start: updateDate.toISOString(),
},
},
},
],
},
});
}