refactor: ♻️ extend logging in webhook response errors

This commit is contained in:
Adrian Pilarczyk 2023-08-02 11:46:32 +02:00
parent fb8aa45f4c
commit 547e773500

View file

@ -1,5 +1,7 @@
import { NextApiResponse } from "next"; import { NextApiResponse } from "next";
import { AvalaraError } from "avatax/lib/AvaTaxClient";
import { ZodError } from "zod";
import { createLogger, Logger } from "../../lib/logger"; import { createLogger, Logger } from "../../lib/logger";
class WebhookErrorResolver { class WebhookErrorResolver {
@ -8,16 +10,30 @@ class WebhookErrorResolver {
this.logger = createLogger({ event: "WebhookErrorResolver" }); this.logger = createLogger({ event: "WebhookErrorResolver" });
} }
private resolveError(error: unknown) { private resolveErrorMessage(error: unknown) {
if (error instanceof ZodError) {
this.logger.error(error.message, "Unexpected Zod error caught:");
this.logger.debug(error.stack, "Error details:");
return error.message;
}
if (error instanceof AvalaraError) {
this.logger.error(error.message, "Unexpected Avalara error caught:");
this.logger.debug(error.stack, "Error stack:");
this.logger.debug(error.target, "Error target:");
return error.message;
}
if (error instanceof Error) { if (error instanceof Error) {
this.logger.error(error.stack, "Unexpected error caught:"); this.logger.error(error.stack, "Unexpected error caught:");
return error.message; return error.message;
} }
return "Internal server error"; return "Internal server error";
} }
resolve(error: unknown) { resolve(error: unknown) {
return this.resolveError(error); return this.resolveErrorMessage(error);
} }
} }