fix: update user/s google sheet email
This commit is contained in:
@@ -168,7 +168,7 @@ router.delete('/delete-api-key', requireSignIn, async (req, res) => {
|
||||
const oauth2Client = new google.auth.OAuth2(
|
||||
process.env.GOOGLE_CLIENT_ID,
|
||||
process.env.GOOGLE_CLIENT_SECRET,
|
||||
// process.env.GOOGLE_REDIRECT_URI
|
||||
process.env.GOOGLE_REDIRECT_URI
|
||||
);
|
||||
|
||||
// Step 1: Redirect to Google for authentication
|
||||
@@ -206,25 +206,20 @@ router.get('/google/callback', requireSignIn, async (req, res) => {
|
||||
return res.status(400).json({ message: 'Email not found' });
|
||||
}
|
||||
|
||||
// Check if user already exists
|
||||
let user = await User.findOne({ where: { email } });
|
||||
// Get the currently authenticated user (from `requireSignIn`)
|
||||
let user = await User.findOne({ where: { id: req.user.id } });
|
||||
|
||||
if (!user) {
|
||||
const hashedPassword = await hashPassword(email + process.env.JWT_SECRET);
|
||||
user = await User.create({
|
||||
email,
|
||||
password: hashedPassword,
|
||||
google_sheets_email: email, // Gmail used for Sheets
|
||||
google_access_token: tokens.access_token,
|
||||
google_refresh_token: tokens.refresh_token,
|
||||
});
|
||||
} else {
|
||||
// Update user's Google tokens if they exist
|
||||
await User.update({
|
||||
google_access_token: tokens.access_token,
|
||||
google_refresh_token: tokens.refresh_token,
|
||||
}, { where: { email } });
|
||||
return res.status(400).json({ message: 'User not found' });
|
||||
}
|
||||
|
||||
// Update the current user's Google Sheets email and tokens
|
||||
user = await user.update({
|
||||
google_sheets_email: email,
|
||||
google_access_token: tokens.access_token,
|
||||
google_refresh_token: tokens.refresh_token,
|
||||
});
|
||||
|
||||
// List user's Google Sheets from their Google Drive
|
||||
const drive = google.drive({ version: 'v3', auth: oauth2Client });
|
||||
const response = await drive.files.list({
|
||||
@@ -243,7 +238,7 @@ router.get('/google/callback', requireSignIn, async (req, res) => {
|
||||
|
||||
res.json({
|
||||
message: 'Google authentication successful',
|
||||
email: user.email,
|
||||
google_sheet_email: user.google_sheets_email,
|
||||
jwtToken,
|
||||
files
|
||||
});
|
||||
@@ -252,7 +247,6 @@ router.get('/google/callback', requireSignIn, async (req, res) => {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Step 3: Get data from Google Sheets
|
||||
router.post('/gsheets/data', requireSignIn, async (req, res) => {
|
||||
const { spreadsheetId } = req.body;
|
||||
|
||||
Reference in New Issue
Block a user