diff --git a/.changeset/five-hounds-play.md b/.changeset/five-hounds-play.md new file mode 100644 index 0000000..710883d --- /dev/null +++ b/.changeset/five-hounds-play.md @@ -0,0 +1,5 @@ +--- +"saleor-app-taxes": patch +--- + +Fix "no provider available" error while reading an updated provider. diff --git a/apps/taxes/src/modules/avatax/ui/avatax-configuration-form.tsx b/apps/taxes/src/modules/avatax/ui/avatax-configuration-form.tsx index d26b1dc..f70e278 100644 --- a/apps/taxes/src/modules/avatax/ui/avatax-configuration-form.tsx +++ b/apps/taxes/src/modules/avatax/ui/avatax-configuration-form.tsx @@ -145,7 +145,7 @@ export const AvataxConfigurationForm = () => { appBridge?.dispatch( actions.Notification({ title: "Success", - text: "Remove TaxJar instance", + text: "Removed Avatax instance", status: "success", }) ); diff --git a/apps/taxes/src/modules/crud-settings/crud-settings.service.ts b/apps/taxes/src/modules/crud-settings/crud-settings.service.ts index da35b7b..ccdfa26 100644 --- a/apps/taxes/src/modules/crud-settings/crud-settings.service.ts +++ b/apps/taxes/src/modules/crud-settings/crud-settings.service.ts @@ -4,7 +4,8 @@ import { z } from "zod"; import { createLogger } from "../../lib/logger"; import { createId } from "../../lib/utils"; -const settingsSchema = z.array(z.record(z.any())); +const settingSchema = z.record(z.any()).and(z.object({ id: z.string() })); +const settingsSchema = z.array(settingSchema); export class CrudSettingsConfigurator { private logger: pino.Logger; @@ -59,8 +60,8 @@ export class CrudSettingsConfigurator { async create(data: any) { this.logger.debug(data, ".create called with:"); - const getResponse = await this.readAll(); - const prevData = getResponse.data; + const settings = await this.readAll(); + const prevData = settings.data; const id = createId(); const newData = [...prevData, { ...data, id }]; @@ -78,8 +79,8 @@ export class CrudSettingsConfigurator { async delete(id: string) { this.logger.debug(`.delete called with: ${id}`); - const getResponse = await this.readAll(); - const prevData = getResponse.data; + const settings = await this.readAll(); + const prevData = settings.data; const nextData = prevData.filter((item) => item.id !== id); await this.metadataManager.set({ @@ -91,11 +92,10 @@ export class CrudSettingsConfigurator { async update(id: string, data: any) { this.logger.debug(data, `.update called with: ${id}`); - const getResponse = await this.readAll(); - const prevData = getResponse.data; - const nextData = prevData.map((item) => { + const { data: settings } = await this.readAll(); + const nextData = settings.map((item) => { if (item.id === id) { - return { id, data }; + return { id, ...data }; } return item; }); diff --git a/apps/taxes/src/modules/taxjar/taxjar-configuration.service.ts b/apps/taxes/src/modules/taxjar/taxjar-configuration.service.ts index 216c1f7..d543d93 100644 --- a/apps/taxes/src/modules/taxjar/taxjar-configuration.service.ts +++ b/apps/taxes/src/modules/taxjar/taxjar-configuration.service.ts @@ -46,7 +46,7 @@ export class TaxJarConfigurationService { async get(id: string): Promise { this.logger.debug(`.get called with id: ${id}`); - const data = await this.crudSettingsConfigurator.read(id); + const { data } = await this.crudSettingsConfigurator.read(id); this.logger.debug({ setting: data }, `Fetched setting from crudSettingsConfigurator`); const validation = getSchema.safeParse(data); diff --git a/apps/taxes/src/modules/taxjar/ui/taxjar-configuration-form.tsx b/apps/taxes/src/modules/taxjar/ui/taxjar-configuration-form.tsx index ddf298e..3f677df 100644 --- a/apps/taxes/src/modules/taxjar/ui/taxjar-configuration-form.tsx +++ b/apps/taxes/src/modules/taxjar/ui/taxjar-configuration-form.tsx @@ -63,7 +63,7 @@ export const TaxJarConfigurationForm = () => { const { refetch: refetchProvidersConfigurationData } = trpcClient.providersConfiguration.getAll.useQuery(); - const { data: instance } = trpcClient.avataxConfiguration.get.useQuery( + const { data: instance } = trpcClient.taxJarConfiguration.get.useQuery( { id: instanceId ?? "" }, { enabled: !!instanceId, @@ -137,7 +137,7 @@ export const TaxJarConfigurationForm = () => { appBridge?.dispatch( actions.Notification({ title: "Success", - text: "Remove TaxJar instance", + text: "Removed TaxJar instance", status: "success", }) );