Untitled
unknown
plain_text
2 years ago
2.0 kB
10
Indexable
import {
MissingEnvironmentVariableError,
isMissingEnvironmentVariableError,
} from "@lambdas/shared/configuration";
import {
UnsupportedEnvironmentNameError,
isUnsupportedEnvironmentNameError,
} from "@lambdas/shared/configuration/unsupportedEnvironmentNameError";
import { HTTP_CODES } from "@lambdas/shared/constants";
import { Response, sendError, sendSuccess } from "@lambdas/shared/helpers";
import { KycAuditTrail } from "@lambdas/shared/models/KycAuditTrail";
import {
DatabaseQueryError,
isDatabaseQueryError,
} from "@lambdas/shared/types";
import { AuditTrailQueryParserError } from "./getAuditTrailQueryParser";
type Errors =
| MissingEnvironmentVariableError
| DatabaseQueryError
| UnsupportedEnvironmentNameError
| AuditTrailQueryParserError;
export const encodeError = (error: Errors): Response => {
if (isMissingEnvironmentVariableError(error)) {
return sendError({
status: HTTP_CODES.INTERNAL_SERVER_ERROR,
messageCode: "missingEnvironmentVariable",
message: `Missing environment variable with name: ${error.variableName}`,
});
} else if (isDatabaseQueryError(error)) {
return sendError({
status: HTTP_CODES.INTERNAL_SERVER_ERROR,
messageCode: "infrastructureError",
message: `Unexpected database error while processing this request: ${String(
error.error
)}.`,
});
} else if (isUnsupportedEnvironmentNameError(error)) {
return sendError({
status: HTTP_CODES.INTERNAL_SERVER_ERROR,
messageCode: "UnsupportedEnvironmentNameError",
message: `Unsupported Environment Name Error: ${error.environmentName}`,
});
} else {
return sendError({
status: HTTP_CODES.CLIENT_ERROR,
messageCode: "invalidRequest",
message: error.reasons,
});
}
};
export const encodeSuccess = (data: ReadonlyArray<KycAuditTrail>): Response =>
sendSuccess({ status: HTTP_CODES.OK, data });
Editor is loading...
Leave a Comment