customer-dashboard-api/src/routes/calendarRoutes.ts

87 lines
2.2 KiB
TypeScript

import express, { Request } from "express";
import passport from "passport";
const router = express.Router();
import axios from "axios";
import logger from "../logger/logger";
import Session from "../models/session";
import * as calendarController from "../controllers/calendarController";
router.get(
"/auth/google",
passport.authenticate("google", {
accessType: "offline",
//session: false,
scope: [
"https://www.googleapis.com/auth/calendar.app.created",
"https://www.googleapis.com/auth/calendar.events.freebusy",
"https://www.googleapis.com/auth/userinfo.profile",
],
})
);
router.get(
"/auth/google/callback",
passport.authenticate("google", {
failureRedirect: process.env.PASSPORT_FAILURE_REDIRECT_URL as string,
}),
function (req, res) {
// Successful authentication, redirect home.
console.log(
"req.user",
req.user,
req.cookies,
(req as Request & { accessToken?: string }).accessToken,
(req as Request & { refreshToken?: string }).refreshToken
);
const sessionId = req.cookies["session"];
if (!sessionId) {
logger.error("session cookie not found");
res.redirect(process.env.PASSPORT_FAILURE_REDIRECT_URL as string);
return;
}
Session.findOne({
where: {
session_id: sessionId,
},
})
.then((userSession) => {
if (!userSession) {
logger.error("user session not found");
res.redirect(process.env.PASSPORT_FAILURE_REDIRECT_URL as string);
return;
}
console.log("userSession", userSession);
/*
axios.post("", {
user_id: userSession.user_id,
refresh_token: req.user.refreshToken,
pass: req.user.accessToken,
}); */
res.redirect(process.env.PASSPORT_SUCCESS_REDIRECT_URL as string);
})
.catch((err) => {
logger.error(err);
res.redirect(process.env.PASSPORT_FAILURE_REDIRECT_URL as string);
});
// /api/v1/addGoogleAccount
/*
user_id
refresh_token
pass
*/
}
);
router.get("/store", calendarController.GetStoreId);
router.get("/settings", calendarController.GetCalendarSettings);
export default router;