Added basic error reporting

This commit is contained in:
Peter Morton 2022-10-19 10:57:21 -05:00
parent e63187165b
commit ff66188f5f

View File

@ -1,42 +1,40 @@
const express = require("express"); const express = require("express");
const router = express.Router(); const router = express.Router();
const axios = require("axios"); const axios = require("axios");
const qs = require("querystring"); const url = require("url");
const util = require("util"); const util = require("util");
router.get("/", (req, res) => { router.get("/", (req, res) => {
// token in session -> get user data and send it back to the vue app // token in session -> get user data and send it back to the vue app
if (req.session.token) { if (req.session.token) {
query(req.query.threadId); query(req.query.referenceId);
} }
// no token -> send nothing // no token -> send nothing
else { else {
axios const params = new url.URLSearchParams({
.post(
process.env.EO_API_ACCESS_TOKEN_URL,
qs.stringify({
grant_type: "password", grant_type: "password",
username: process.env.EO_API_USERNAME, username: process.env.EO_API_USERNAME,
password: process.env.EO_API_PASSWORD, password: process.env.EO_API_PASSWORD,
scope: process.env.EO_API_SCOPE, scope: process.env.EO_API_SCOPE,
client_id: process.env.EO_API_CLIENT_ID, client_id: process.env.EO_API_CLIENT_ID,
client_secret: process.env.EO_API_SECRET, client_secret: process.env.EO_API_SECRET,
}), });
{
axios
.post(process.env.EO_API_ACCESS_TOKEN_URL, params.toString(), {
headers: { headers: {
"Content-Type": "application/x-www-form-urlencoded", "Content-Type": "application/x-www-form-urlencoded",
}, },
} })
)
.then((result) => { .then((result) => {
// save token to session // save token to session
req.session.token = result.data.access_token; req.session.token = result.data.access_token;
console.log(result); console.log(result);
//redirect to Vue app
query(req.query.referenceId); query(req.query.referenceId);
}) })
.catch((err) => { .catch((err) => {
console.error(err); sendError(err, res);
}); });
} }
@ -219,8 +217,24 @@ router.get("/", (req, res) => {
} }
}) })
.catch((err) => { .catch((err) => {
console.log(err); // bin the token on error
req.session.destroy();
sendError(err, res);
}); });
} }
}); });
module.exports = router; module.exports = router;
function sendError(err, res) {
console.error(err);
const errStatus = 500;
if (err.response) errStatus = err.response.status;
res.status(errStatus).send({
errors: [
{
status: errStatus,
title: err.code,
detail: err.message,
},
],
});
}