New calendar

This commit is contained in:
Milan Paunovic
2024-12-15 16:29:34 +01:00
parent a6009beb03
commit 70db8bdc0b
67 changed files with 1568 additions and 1041 deletions

View File

@ -1144,12 +1144,14 @@ exports.cleanupTokenRefreshFlags = functions.pubsub
async function fetchAndSaveGoogleEvents({token, refreshToken, email, familyId, creatorId}) {
const baseDate = new Date();
const timeMin = new Date(baseDate.setMonth(baseDate.getMonth() - 1)).toISOString();
const timeMax = new Date(baseDate.setMonth(baseDate.getMonth() + 2)).toISOString();
const oneYearAgo = new Date(baseDate);
oneYearAgo.setFullYear(oneYearAgo.getFullYear() - 1);
const oneYearAhead = new Date(baseDate);
oneYearAhead.setFullYear(oneYearAhead.getFullYear() + 1);
let totalEvents = 0;
let pageToken = null;
const batchSize = 50;
const batchSize = 250;
try {
console.log(`[FETCH] Starting event fetch for user: ${email}`);
@ -1158,12 +1160,12 @@ async function fetchAndSaveGoogleEvents({token, refreshToken, email, familyId, c
let events = [];
const url = new URL(`https://www.googleapis.com/calendar/v3/calendars/primary/events`);
url.searchParams.set("singleEvents", "true");
url.searchParams.set("timeMin", timeMin);
url.searchParams.set("timeMax", timeMax);
url.searchParams.set("timeMin", oneYearAgo.toISOString());
url.searchParams.set("timeMax", oneYearAhead.toISOString());
url.searchParams.set("maxResults", batchSize.toString());
if (pageToken) url.searchParams.set("pageToken", pageToken);
console.log(`[FETCH] Making request with token: ${token.substring(0, 10)}...`);
console.log(`[FETCH] Making request with token: ${token?.substring(0, 10)}...`);
let response = await fetch(url.toString(), {
headers: {
@ -1178,12 +1180,10 @@ async function fetchAndSaveGoogleEvents({token, refreshToken, email, familyId, c
console.log(`[TOKEN] Token refreshed successfully during fetch`);
token = refreshedGoogleToken;
// Update token in Firestore
await db.collection("Profiles").doc(creatorId).update({
[`googleAccounts.${email}.accessToken`]: refreshedGoogleToken
});
// Retry the request with new token
response = await fetch(url.toString(), {
headers: {
Authorization: `Bearer ${refreshedGoogleToken}`,