import express from 'express'; import { google } from 'googleapis'; import { GoogleCredentialsLoader } from './CredentialsLoader'; import User from '../../authentication/DashUserModel'; import { DashUserModel } from '../../authentication/DashUserModel'; const router = express.Router(); router.post('/tasks/create', async (req, res) => { try { const { title, notes, due } = req.body; // Make sure user is authenticated if (!req.user) { return res.status(401).json({ error: 'User not authenticated' }); } // Assuming access token is stored in user model const user = req.user as typeof User; // replace with your actual User type if needed const accessToken = user.googleAccessToken; // <-- change this based on where you store it if (!accessToken) { return res.status(400).json({ error: 'Google access token not found for user' }); } const credentials = GoogleCredentialsLoader.ProjectCredentials; const auth = new google.auth.OAuth2( credentials.client_id, credentials.client_secret, credentials.redirect_uris[0] ); auth.setCredentials({ access_token: accessToken }); const tasks = google.tasks({ version: 'v1', auth }); const result = await tasks.tasks.insert({ tasklist: '@default', requestBody: { title, notes, due, }, }); res.status(200).json(result.data); } catch (err) { console.error('Error creating Google Task:', err); res.status(500).json({ error: 'Failed to create task' }); } }); export default router;