refactor: ♻️ normalize taxjar errors

This commit is contained in:
Adrian Pilarczyk 2023-09-26 15:41:12 +02:00
parent 20e8ed4086
commit f9cee07aa7
3 changed files with 26 additions and 2 deletions

View file

@ -8,6 +8,7 @@ import { TaxJarConfig } from "../taxjar-connection-schema";
import { TaxJarCalculateTaxesPayloadService } from "./taxjar-calculate-taxes-payload-service";
import { TaxJarCalculateTaxesResponseTransformer } from "./taxjar-calculate-taxes-response-transformer";
import { ClientLogger } from "../../logs/client-logger";
import { TaxJarErrorNormalizer } from "../taxjar-error-normalizer";
export type TaxJarCalculateTaxesPayload = {
taxBase: TaxBaseFragment;
@ -70,6 +71,8 @@ export class TaxJarCalculateTaxesAdapter
return transformedResponse;
} catch (error) {
const errorNormalizer = new TaxJarErrorNormalizer();
this.clientLogger.push({
event: "[CalculateTaxes] fetchTaxForOrder",
status: "error",
@ -78,7 +81,8 @@ export class TaxJarCalculateTaxesAdapter
output: error,
},
});
throw error;
throw errorNormalizer.normalize(error);
}
}
}

View file

@ -8,6 +8,7 @@ import { TaxJarConfig } from "../taxjar-connection-schema";
import { TaxJarOrderConfirmedPayloadService } from "./taxjar-order-confirmed-payload.service";
import { TaxJarOrderConfirmedResponseTransformer } from "./taxjar-order-confirmed-response-transformer";
import { ClientLogger } from "../../logs/client-logger";
import { TaxJarErrorNormalizer } from "../taxjar-error-normalizer";
export type TaxJarOrderConfirmedPayload = {
order: OrderConfirmedSubscriptionFragment;
@ -67,6 +68,8 @@ export class TaxJarOrderConfirmedAdapter
return transformedResponse;
} catch (error) {
const errorNormalizer = new TaxJarErrorNormalizer();
this.clientLogger.push({
event: "[OrderConfirmed] createOrder",
status: "error",
@ -75,7 +78,7 @@ export class TaxJarOrderConfirmedAdapter
output: error,
},
});
throw error;
throw errorNormalizer.normalize(error);
}
}
}

View file

@ -0,0 +1,17 @@
import { TaxjarError } from "taxjar/dist/util/types";
import { createLogger } from "../../lib/logger";
import { TaxExternalError, TaxUnexpectedError } from "../taxes/tax-error";
export class TaxJarErrorNormalizer {
private logger = createLogger({ name: "TaxJarErrorNormalizer" });
normalize(error: unknown) {
if (error instanceof TaxjarError) {
this.logger.debug(error.stack, "TaxjarError occurred");
return new TaxExternalError(error.message);
}
return TaxUnexpectedError.normalize(error);
}
}