Skip to content

Commit

Permalink
Merge pull request #510 from USEPA/feature/update-logging
Browse files Browse the repository at this point in the history
Feature/update logging
  • Loading branch information
courtneymyers authored Nov 27, 2024
2 parents 9534991 + 7543353 commit ea6fbd8
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 21 deletions.
22 changes: 10 additions & 12 deletions app/server/app/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,13 +78,6 @@ function fetchNcesData() {
const localFilePath = resolve(__dirname, "./content", filename);
const s3FileUrl = `${s3BucketUrl}/content/${filename}`;

const logMessage =
NODE_ENV === "development"
? `Reading ${filename} file from disk.`
: `Fetching ${filename} from S3 bucket.`;

log({ level: "info", message: logMessage });

/**
* local development: read files directly from disk
* Cloud.gov: fetch files from the public s3 bucket
Expand All @@ -95,14 +88,19 @@ function fetchNcesData() {
}),
)
.then((data) => {
const logMessage =
NODE_ENV === "development"
? `Read ${filenames.length} NCES files from disk.`
: `Fetched ${filenames.length} NCES files from S3 bucket.`;

log({ level: "info", message: logMessage });

return {
2023: data[0],
2024: data[1],
};
})
.catch((error) => {
console.log(error);

const errorStatus = error.response?.status || 500;
const errorMethod = error.response?.config?.method?.toUpperCase();
const errorUrl = error.response?.config?.url;
Expand All @@ -125,7 +123,7 @@ fetchNcesData().then((ncesData) => {
app.use(helmet.hsts({ maxAge: 31536000 }));

/** Instruct web browsers to disable caching. */
app.use((req, res, next) => {
app.use((_req, res, next) => {
res.setHeader("Surrogate-Control", "no-store");
res.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, proxy-revalidate"); // prettier-ignore
res.setHeader("Pragma", "no-cache");
Expand Down Expand Up @@ -164,7 +162,7 @@ fetchNcesData().then((ncesData) => {
* (required when using sub path).
*/
const pathRegex = new RegExp(`^\\${SERVER_BASE_PATH || ""}$`);
app.all(pathRegex, (req, res) => res.redirect(`${basePath}`));
app.all(pathRegex, (_req, res) => res.redirect(`${basePath}`));

/**
* Serve client app's static built files.
Expand All @@ -180,7 +178,7 @@ fetchNcesData().then((ncesData) => {
app.use(protectClientRoutes);

/** Serve client-side routes. */
app.get("*", (req, res) => {
app.get("*", (_req, res) => {
res.sendFile(resolve(__dirname, "public/index.html"));
});

Expand Down
14 changes: 7 additions & 7 deletions app/server/app/routes/content.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,6 @@ router.get("/", (req, res) => {
const localFilePath = resolve(__dirname, "../content", filename);
const s3FileUrl = `${s3BucketUrl}/content/${filename}`;

const logMessage =
NODE_ENV === "development"
? `Reading ${filename} file from disk.`
: `Fetching ${filename} from S3 bucket.`;

log({ level: "info", message: logMessage });

/**
* local development: read files directly from disk
* Cloud.gov: fetch files from the public s3 bucket
Expand All @@ -51,6 +44,13 @@ router.get("/", (req, res) => {
}),
)
.then((data) => {
const logMessage =
NODE_ENV === "development"
? `Read ${filenames.length} content files from disk.`
: `Fetched ${filenames.length} content files from S3 bucket.`;

log({ level: "info", message: logMessage });

return res.json({
siteAlert: data[0],
helpdeskIntro: data[1],
Expand Down
14 changes: 12 additions & 2 deletions app/server/app/routes/help.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ const {
const { ensureAuthenticated, ensureHelpdesk } = require("../middleware");
const { getBapFormSubmissionData } = require("../utilities/bap");
const { getRebateIdFieldName } = require("../utilities/formio");
const log = require("../utilities/logger");

/**
* @typedef {'2022' | '2023' | '2024'} RebateYear
Expand Down Expand Up @@ -273,6 +274,7 @@ router.get("/formio/submission/:rebateYear/:formType/:id", async (req, res) => {
// --- post an update to an existing form submission to Formio (change submission to 'draft')
router.post("/formio/submission/:rebateYear/:formType/:mongoId", (req, res) => {
const { body } = req;
const { mail } = req.user;
const { rebateYear, formType, mongoId } = req.params;

// NOTE: included to support EPA API scan
Expand All @@ -292,14 +294,22 @@ router.post("/formio/submission/:rebateYear/:formType/:mongoId", (req, res) => {

if (!formioFormUrl) {
const errorStatus = 400;
const errorMessage = `Formio form URL does not exist for ${rebateYear} ${formName}.`;
const errorMessage = `Formio form URL does not exist for ${rebateYear} ${formName} form.`;
return res.status(errorStatus).json({ message: errorMessage });
}

axiosFormio(req)
.put(`${formioFormUrl}/submission/${mongoId}`, body)
.then((axiosRes) => axiosRes.data)
.then((submission) => res.json(submission))
.then((submission) => {
const logMessage =
`Helpdesk: User with email '${mail}' updated ${rebateYear} ` +
`${formType.toUpperCase()} submission '${mongoId}' ` +
`(status: '${submission.state}').`;
log({ level: "info", message: logMessage, req });

return res.json(submission);
})
.catch((error) => {
// NOTE: error is logged in axiosFormio response interceptor
const errorStatus = error.response?.status || 500;
Expand Down

0 comments on commit ea6fbd8

Please sign in to comment.