saleor-apps-redis_apl/apps/taxes/src/modules/avatax/configuration/avatax-address-validation.service.ts

28 lines
894 B
TypeScript
Raw Normal View History

import { createLogger, Logger } from "../../../lib/logger";
import { avataxAddressFactory } from "../address-factory";
import { AvataxClient } from "../avatax-client";
import { AvataxConfig } from "../avatax-connection-schema";
import { AvataxValidationErrorResolver } from "./avatax-validation-error-resolver";
export class AvataxAddressValidationService {
private logger: Logger;
constructor(private avataxClient: AvataxClient) {
this.logger = createLogger({
name: "AvataxAddressValidationService",
});
}
async validate(address: AvataxConfig["address"]) {
const formattedAddress = avataxAddressFactory.fromChannelAddress(address);
try {
return this.avataxClient.validateAddress({ address: formattedAddress });
} catch (error) {
const errorResolver = new AvataxValidationErrorResolver();
throw errorResolver.resolve(error);
}
}
}