import {VercelRequest, VercelResponse} from '@vercel/node'; import {initializeApp, cert} from 'firebase-admin/app'; import {getFirestore} from 'firebase-admin/firestore'; import {firestore} from "firebase-admin"; import Timestamp = firestore.Timestamp; export default async function generateDaily(req: VercelRequest, res: VercelResponse) { const serviceAccount = require('./serviceAccountKey.json'); initializeApp({ credential: cert(serviceAccount) }) const firestore = getFirestore(); const exercisesSnapshot = await firestore.collection('Exercises').get(); const exercises: FirebaseFirestore.DocumentData[] = []; exercisesSnapshot.forEach((exercise) => { exercises.push(firestore.collection('Exercises').doc(exercise.id)); }); const shuffled = exercises.sort(() => 0.5 - Math.random()); const selected = shuffled.slice(0, 3); const bonus = exercises[Math.floor(Math.random() * exercises.length)]; const dailyChallengesRef = firestore.collection('DailyChallenges'); const firestoreRes = await dailyChallengesRef.add({ date: Timestamp.fromDate(new Date()), list_exercises: selected, bonus_exercise: bonus, }) res.json(firestoreRes); }