diff --git a/.changeset/cold-candles-fly.md b/.changeset/cold-candles-fly.md new file mode 100644 index 0000000..603d285 --- /dev/null +++ b/.changeset/cold-candles-fly.md @@ -0,0 +1,5 @@ +--- +"saleor-app-taxes": patch +--- + +The update provider configuration views no longer return "invalid credentials" and "invalid address" errors in inappropriate cases. The latter required temporarily disabling the TaxJar address validation, as it currently doesn't work. diff --git a/apps/taxes/src/modules/avatax/configuration/avatax-connection-repository.ts b/apps/taxes/src/modules/avatax/configuration/avatax-connection-repository.ts index 4c086bf..59de3e1 100644 --- a/apps/taxes/src/modules/avatax/configuration/avatax-connection-repository.ts +++ b/apps/taxes/src/modules/avatax/configuration/avatax-connection-repository.ts @@ -13,7 +13,7 @@ import { avataxConnectionSchema, } from "../avatax-connection-schema"; -const getSchema = avataxConnectionSchema; +const getSchema = avataxConnectionSchema.strict(); export class AvataxConnectionRepository { private crudSettingsManager: CrudSettingsManager; @@ -83,7 +83,7 @@ export class AvataxConnectionRepository { return result.data; } - async patch(id: string, input: AvataxConfig): Promise { + async patch(id: string, input: Pick): Promise { return this.crudSettingsManager.update(id, input); } diff --git a/apps/taxes/src/modules/avatax/configuration/avatax-connection.service.ts b/apps/taxes/src/modules/avatax/configuration/avatax-connection.service.ts index f3cd316..e87f172 100644 --- a/apps/taxes/src/modules/avatax/configuration/avatax-connection.service.ts +++ b/apps/taxes/src/modules/avatax/configuration/avatax-connection.service.ts @@ -50,7 +50,7 @@ export class AvataxConnectionService { await validationService.validate(input); - return this.avataxConnectionRepository.patch(id, input); + return this.avataxConnectionRepository.patch(id, { config: input }); } async delete(id: string): Promise { diff --git a/apps/taxes/src/modules/taxjar/configuration/taxjar-connection-repository.ts b/apps/taxes/src/modules/taxjar/configuration/taxjar-connection-repository.ts index 3246911..0ee30f0 100644 --- a/apps/taxes/src/modules/taxjar/configuration/taxjar-connection-repository.ts +++ b/apps/taxes/src/modules/taxjar/configuration/taxjar-connection-repository.ts @@ -9,7 +9,7 @@ import { import { TAX_PROVIDER_KEY } from "../../provider-connections/public-provider-connections.service"; import { TaxJarConfig, TaxJarConnection, taxJarConnection } from "../taxjar-connection-schema"; -const getSchema = taxJarConnection; +const getSchema = taxJarConnection.strict(); export class TaxJarConnectionRepository { private crudSettingsManager: CrudSettingsManager; @@ -79,7 +79,7 @@ export class TaxJarConnectionRepository { return result.data; } - async patch(id: string, input: TaxJarConfig): Promise { + async patch(id: string, input: Pick): Promise { return this.crudSettingsManager.update(id, input); } diff --git a/apps/taxes/src/modules/taxjar/configuration/taxjar-connection.service.ts b/apps/taxes/src/modules/taxjar/configuration/taxjar-connection.service.ts index 74ce1db..041902b 100644 --- a/apps/taxes/src/modules/taxjar/configuration/taxjar-connection.service.ts +++ b/apps/taxes/src/modules/taxjar/configuration/taxjar-connection.service.ts @@ -49,7 +49,7 @@ export class TaxJarConnectionService { await validationService.validate(input); - return this.taxJarConnectionRepository.patch(id, input); + return this.taxJarConnectionRepository.patch(id, { config: input }); } async delete(id: string): Promise { diff --git a/apps/taxes/src/modules/taxjar/taxjar-client.ts b/apps/taxes/src/modules/taxjar/taxjar-client.ts index ab063cd..ee4420f 100644 --- a/apps/taxes/src/modules/taxjar/taxjar-client.ts +++ b/apps/taxes/src/modules/taxjar/taxjar-client.ts @@ -46,7 +46,12 @@ export class TaxJarClient { return this.client.createOrder(params); } + /** + * TaxJar validateAddress doesn't work. It's turned off for now. + * @see https://github.com/taxjar/taxjar-node/issues/70 + * @todo Revisit this when TaxJar fixes the issue. Alternatively, create a custom validation. + */ async validateAddress({ params }: ValidateAddressArgs) { - return this.client.validateAddress(params); + // return this.client.validateAddress(params); } }