Skip to content
This repository has been archived by the owner on Jan 3, 2024. It is now read-only.

Commit

Permalink
move validation tests to handler
Browse files Browse the repository at this point in the history
  • Loading branch information
danielireson committed Jun 28, 2021
1 parent 500d32d commit b308bcd
Show file tree
Hide file tree
Showing 4 changed files with 346 additions and 282 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"encrypt": "node ./scripts/encrypt.js",
"decrypt": "node ./scripts/decrypt.js",
"lint": "eslint src",
"mocha": "NODE_ENV=test mocha src/**/*.spec.js --exit",
"mocha": "NODE_ENV=test mocha src/** --exit",
"test": "npm run lint && npm run mocha",
"prettier": "prettier src --write"
},
Expand Down
50 changes: 20 additions & 30 deletions src/handler.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ const { isEmail, isURL } = require("validator");
const Email = require("./email/Email");
const Request = require("./request/Request");
const HttpError = require("./error/HttpError");
const ForbiddenError = require("../error/ForbiddenError");
const UnprocessableEntityError = require("../error/UnprocessableEntityError");
const BadRequestError = require("../error/BadRequestError");
const ForbiddenError = require("./error/ForbiddenError");
const UnprocessableEntityError = require("./error/UnprocessableEntityError");
const BadRequestError = require("./error/BadRequestError");
const JsonResponse = require("./response/JsonResponse");
const HtmlResponse = require("./response/HtmlResponse");
const RedirectResponse = require("./response/RedirectResponse");
Expand Down Expand Up @@ -138,29 +138,23 @@ async function sendEmail(request, sender, senderArn, subject, sendEmailFn) {
}

async function successResponse(request, msgReceiveSuccess, loadTemplate) {
let response;

if (request.isJsonResponse()) {
response = new JsonResponse(200, msgReceiveSuccess);
} else if (request.isRedirectResponse()) {
response = new RedirectResponse(302, msgReceiveSuccess, request.redirect);
} else {
try {
response = new HtmlResponse(200, msgReceiveSuccess, await loadTemplate());
} catch (error) {
logging.error("unable to load template file", error);
response = new PlainTextResponse(200, msgReceiveSuccess);
}
return new JsonResponse(200, msgReceiveSuccess);
}

logging.info(`returning http ${response.statusCode} response`);
if (request.isRedirectResponse()) {
return new RedirectResponse(302, msgReceiveSuccess, request.redirect);
}

response.build();
try {
return new HtmlResponse(200, msgReceiveSuccess, await loadTemplate());
} catch (error) {
logging.error("unable to load template file", error);
return new PlainTextResponse(200, msgReceiveSuccess);
}
}

async function errorResponse(request, error, loadTemplate) {
let response;

let statusCode = 500;
let message = "An unexpected error occurred";

Expand All @@ -170,17 +164,13 @@ async function errorResponse(request, error, loadTemplate) {
}

if (request.isJsonResponse()) {
response = new JsonResponse(statusCode, message);
} else {
try {
response = new HtmlResponse(statusCode, message, await loadTemplate());
} catch (error) {
logging.error("unable to load template file", error);
response = new PlainTextResponse(statusCode, message);
}
return new JsonResponse(statusCode, message);
}

logging.info(`returning http ${response.statusCode} response`);

response.build();
try {
return new HtmlResponse(statusCode, message, await loadTemplate());
} catch (error) {
logging.error("unable to load template file", error);
return new PlainTextResponse(statusCode, message);
}
}
Loading

0 comments on commit b308bcd

Please sign in to comment.