content/hifi-content/Experiences/Releases/usefulUtilities/hiFiCalendar/2019-05-23_14-43-38/hifiWebApp/hifiCalendarRouter.js
2022-02-13 23:16:46 +01:00

78 lines
No EOL
2.4 KiB
JavaScript

const express = require('express');
const router = express.Router();
const request = require('request');
const serverConfig = require("./serverConfig.json");
const CLIENT_ID = serverConfig.CLIENT_ID;
const CLIENT_SECRET = serverConfig.CLIENT_SECRET;
const REDIRECT_URI = serverConfig.REDIRECT_URI;
const TOKEN_URL = "https://www.googleapis.com/oauth2/v4/token";
router.get("/", (req, res) => {
res.send("test");
})
router.post("/request_token", (req, res) => {
const refresh_token = req.body.refresh_token;
const oAuthInfo = {
client_id: CLIENT_ID,
client_secret: CLIENT_SECRET,
refresh_token: refresh_token,
grant_type: "refresh_token"
}
request({
uri: TOKEN_URL,
method: "POST",
json: true,
body: oAuthInfo
}, (error, response) => {
if (error) {
const responseObject = {
status: "error",
errorText: `Refreshing Oauth Token with Google`
};
res.statusCode = 500;
res.setHeader('Content-Type', 'application/json');
return res.end(JSON.stringify(responseObject));
} else {
response.body.status = "success"
res.statusCode = 200;
res.setHeader('Content-Type', 'application/json');
return res.end(JSON.stringify(response.body));
}
})
})
router.post("/exchangeCode", (req, res) => {
const code = req.body.code;
request({
uri: TOKEN_URL,
method: "POST",
json: true,
body: {
client_id: CLIENT_ID,
client_secret: CLIENT_SECRET,
redirect_uri: REDIRECT_URI,
grant_type: "authorization_code",
code: code
}
}, (error, response) => {
if (error) {
const responseObject = {
status: "error",
errorText: `Problem getting back token`
};
res.statusCode = 500;
res.setHeader('Content-Type', 'application/json');
return res.end(JSON.stringify(responseObject));
} else {
response.body.status = "success"
res.statusCode = 200;
res.setHeader('Content-Type', 'application/json');
return res.end(JSON.stringify(response.body));
}
})
})
module.exports = router;