saleor-apps-redis_apl/apps/taxes/src/modules/avatax/avatax-webhook.service.ts

67 lines
2.3 KiB
TypeScript
Raw Normal View History

feat: finalize order process (#355) * feat: :sparkles: add dummy order-created * refactor: :fire: unused private-providers-configuration-service * feat: :sparkles: add dummy order-fulfilled * refactor: :truck: move provider-config * refactor: :truck: crudSettingsConfigurator -> crudSettingsManager * refactor: :recycle: [tax-provider].ts -> [tax-provider]-webhook.service.ts * feat: :sparkles: add dummy createOrder * refactor: :recycle: distinguish between salesOrder and salesInvoice in avatax * refactor: :truck: [provider]-calculate.ts to [provider]-transform.ts * refactor: :truck: ResponseTaxPayload to tax-provider-webhook.ts * refactor: :truck: ResponseTaxPayload -> CalculateTaxesResponse * refactor: :recycle: webhooks with active-tax-provider.service.ts * feat: :sparkles: add skeleton orderCreate functionality * refactor: :recycle: [provider]-transform.ts -> [provider]-[webhook]-transform.ts * feat: :sparkles: add order-fulfilled with avatax call * refactor: :recycle: move getActiveTaxProvider to active-tax-provider * refactor: :label: export types for [provider]-client function args * refactor: :truck: UpdateAppMetadata -> UpdateMetadata * feat: :sparkles: fulfill order with id from metadata * build: :arrow_up: upgrade avatax * feat: :sparkles: commit transaction on fulfill in avatax * fix: :bug: return of webhooks to ensure valid retry behavior * refactor: :truck: [provider]-[webhook]-transform -> [provider]-[webhook]-map * refactor: :label: export types of avatax-calculate-taxes mapPayload * refactor: :recycle: extract address-map to separate function * refactor: :recycle: remove schema.ts * refactor: :recycle: move addressSchema to channels-config.ts * feat: :sparkles: add tests & placeholder tests for avatax & taxjar maps * refactor: :recycle: throw error if no metadata * refactor: :recycle: change EXTERNAL_ID_KEY to PROVIDER_ORDER_ID_KEY add comments * refactor: :recycle: comments -> it.todo in tests * refactor: :bulb: add comment about shipping_item_code * refactor: :white_check_mark: add todo items for tests * refactor: :recycle: remove export and add sumLines to taxJarOrderCreated * refactor: :recycle: address-map with avatarAddressFactory * docs: :bulb: add comment about MOCKED_SALEOR_PAYLOAD * refactor: :recycle: remove export of mapLines and add to avataxCalculateTaxes * style: :art: add newline-after-var warn to eslint-config-saleor * style: :art: autofix newline-after-var in taxes * test: :white_check_mark: restructure tests according to new naming in address-map * refactor: :recycle: add shippingItemCode to avataxCalculateTaxes wrapper object * refactor: :truck: payloadProps -> payloadArgs * refactor: :recycle: add Maps suffix to map wrapper objects * refactor: :recycle: remove data: null from ActiveTaxProviderResult * refactor: :recycle: maintain the object hierarchy in tests * refactor: :recycle: refactor webhook responses with WebhookResponseFactory * build: :arrow_up: vitest * test: :white_check_mark: add tests for get-app-config-test * test: :white_check_mark: add tests for getActiveTaxProvider * refactor: :recycle: use address fragment for taxBase and order * refactor: :recycle: rename WebhookResponseFactory -> WebhookResponse * style: :construction_worker: add multiline-comment-style * fix: :bug: dummy test in get-app-config.test.ts * refactor: :recycle: rename AddressFragment -> Address * refactor: :recycle: use debug instead of error in webhook-response noRetry * refactor: :recycle: refactor as variables in mutation * build: :construction_worker: add changeset * refactor: :recycle: split changesets in two * build: :arrow_up: vite * build: :arrow_up: vite && vitest in all apps
2023-04-17 11:58:21 +00:00
import {
OrderCreatedSubscriptionFragment,
OrderFulfilledSubscriptionFragment,
TaxBaseFragment,
} from "../../../generated/graphql";
refactor: refine taxjar (#494) * feat: :white_check_mark: add first tests & use address-factory * feat: :sparkles: add distributeDiscount * refactor: taxjar maps to adapters (#495) * refactor: :recycle: taxjar-calculate-taxes-map with taxjar-calculate-taxes-adapter * refactor: :recycle: taxjar-order-created-map -> taxjar-order-created-adapter * refactor: :recycle: address 1st batch of feedback * refactor: :recycle: split up taxjar-calculate-taxes-adapter * refactor: :truck: extract shipping transformer * docs: :bulb: add comment about refunds in distribute-discount * refactor: :truck: split up taxjar-order-created-adapter classes * refactor: :recycle: mocks with taxjar-mock-factory * refactor: :recycle: mocks with avatax-mock-factory * refactor: avatax maps to adapters (#506) * refactor: :recycle: move around & refactor avatax-order-created-map -> adapter * refactor: :truck: move avatax-order-created- to its own folder * refactor: :recycle: avatax-calculate-taxes-map -> adapter * refactor: :recycle: avatax-order-fulfilled-maps -> adapter * feat: :sparkles: add logger to adapters * refactor: :recycle: mocks -> avatax-mock-transaction-factory & fix tests * feat: add tests for taxjar (#509) * fix: :truck: tax-provider-utils.test name * feat: :white_check_mark: add nexus tests & other taxjar tests * feat: :goal_net: add ExpectedError and use it in webhook-response * refactor: :white_check_mark: unify taxjar-calculate-taxes tests with mock-generator * feat: :white_check_mark: add TaxJarOrderCreatedMockGenerator * feat: :white_check_mark: add avatax-calculate-taxes-mock-generator * feat: :white_check_mark: add AvataxOrderCreatedMockGenerator * refactor: :fire: tax-mock-factory * fix: :bug: housekeeping * fix: :bug: feedback * feat: :white_check_mark: add taxBase with discounts test * fix: :bug: address feedback * refactor: :fire: unused avatax-mock-factory functions * feat: :sparkles: use discount utils in all providers * feat: :sparkles: differentiate between pricesEnteredWithTax in taxjar
2023-05-29 08:35:34 +00:00
import { Logger, createLogger } from "../../lib/logger";
feat: finalize order process (#355) * feat: :sparkles: add dummy order-created * refactor: :fire: unused private-providers-configuration-service * feat: :sparkles: add dummy order-fulfilled * refactor: :truck: move provider-config * refactor: :truck: crudSettingsConfigurator -> crudSettingsManager * refactor: :recycle: [tax-provider].ts -> [tax-provider]-webhook.service.ts * feat: :sparkles: add dummy createOrder * refactor: :recycle: distinguish between salesOrder and salesInvoice in avatax * refactor: :truck: [provider]-calculate.ts to [provider]-transform.ts * refactor: :truck: ResponseTaxPayload to tax-provider-webhook.ts * refactor: :truck: ResponseTaxPayload -> CalculateTaxesResponse * refactor: :recycle: webhooks with active-tax-provider.service.ts * feat: :sparkles: add skeleton orderCreate functionality * refactor: :recycle: [provider]-transform.ts -> [provider]-[webhook]-transform.ts * feat: :sparkles: add order-fulfilled with avatax call * refactor: :recycle: move getActiveTaxProvider to active-tax-provider * refactor: :label: export types for [provider]-client function args * refactor: :truck: UpdateAppMetadata -> UpdateMetadata * feat: :sparkles: fulfill order with id from metadata * build: :arrow_up: upgrade avatax * feat: :sparkles: commit transaction on fulfill in avatax * fix: :bug: return of webhooks to ensure valid retry behavior * refactor: :truck: [provider]-[webhook]-transform -> [provider]-[webhook]-map * refactor: :label: export types of avatax-calculate-taxes mapPayload * refactor: :recycle: extract address-map to separate function * refactor: :recycle: remove schema.ts * refactor: :recycle: move addressSchema to channels-config.ts * feat: :sparkles: add tests & placeholder tests for avatax & taxjar maps * refactor: :recycle: throw error if no metadata * refactor: :recycle: change EXTERNAL_ID_KEY to PROVIDER_ORDER_ID_KEY add comments * refactor: :recycle: comments -> it.todo in tests * refactor: :bulb: add comment about shipping_item_code * refactor: :white_check_mark: add todo items for tests * refactor: :recycle: remove export and add sumLines to taxJarOrderCreated * refactor: :recycle: address-map with avatarAddressFactory * docs: :bulb: add comment about MOCKED_SALEOR_PAYLOAD * refactor: :recycle: remove export of mapLines and add to avataxCalculateTaxes * style: :art: add newline-after-var warn to eslint-config-saleor * style: :art: autofix newline-after-var in taxes * test: :white_check_mark: restructure tests according to new naming in address-map * refactor: :recycle: add shippingItemCode to avataxCalculateTaxes wrapper object * refactor: :truck: payloadProps -> payloadArgs * refactor: :recycle: add Maps suffix to map wrapper objects * refactor: :recycle: remove data: null from ActiveTaxProviderResult * refactor: :recycle: maintain the object hierarchy in tests * refactor: :recycle: refactor webhook responses with WebhookResponseFactory * build: :arrow_up: vitest * test: :white_check_mark: add tests for get-app-config-test * test: :white_check_mark: add tests for getActiveTaxProvider * refactor: :recycle: use address fragment for taxBase and order * refactor: :recycle: rename WebhookResponseFactory -> WebhookResponse * style: :construction_worker: add multiline-comment-style * fix: :bug: dummy test in get-app-config.test.ts * refactor: :recycle: rename AddressFragment -> Address * refactor: :recycle: use debug instead of error in webhook-response noRetry * refactor: :recycle: refactor as variables in mutation * build: :construction_worker: add changeset * refactor: :recycle: split changesets in two * build: :arrow_up: vite * build: :arrow_up: vite && vitest in all apps
2023-04-17 11:58:21 +00:00
import { ChannelConfig } from "../channels-configuration/channels-config";
import { ProviderWebhookService } from "../taxes/tax-provider-webhook";
import { AvataxClient } from "./avatax-client";
import { AvataxConfig, defaultAvataxConfig } from "./avatax-config";
refactor: refine taxjar (#494) * feat: :white_check_mark: add first tests & use address-factory * feat: :sparkles: add distributeDiscount * refactor: taxjar maps to adapters (#495) * refactor: :recycle: taxjar-calculate-taxes-map with taxjar-calculate-taxes-adapter * refactor: :recycle: taxjar-order-created-map -> taxjar-order-created-adapter * refactor: :recycle: address 1st batch of feedback * refactor: :recycle: split up taxjar-calculate-taxes-adapter * refactor: :truck: extract shipping transformer * docs: :bulb: add comment about refunds in distribute-discount * refactor: :truck: split up taxjar-order-created-adapter classes * refactor: :recycle: mocks with taxjar-mock-factory * refactor: :recycle: mocks with avatax-mock-factory * refactor: avatax maps to adapters (#506) * refactor: :recycle: move around & refactor avatax-order-created-map -> adapter * refactor: :truck: move avatax-order-created- to its own folder * refactor: :recycle: avatax-calculate-taxes-map -> adapter * refactor: :recycle: avatax-order-fulfilled-maps -> adapter * feat: :sparkles: add logger to adapters * refactor: :recycle: mocks -> avatax-mock-transaction-factory & fix tests * feat: add tests for taxjar (#509) * fix: :truck: tax-provider-utils.test name * feat: :white_check_mark: add nexus tests & other taxjar tests * feat: :goal_net: add ExpectedError and use it in webhook-response * refactor: :white_check_mark: unify taxjar-calculate-taxes tests with mock-generator * feat: :white_check_mark: add TaxJarOrderCreatedMockGenerator * feat: :white_check_mark: add avatax-calculate-taxes-mock-generator * feat: :white_check_mark: add AvataxOrderCreatedMockGenerator * refactor: :fire: tax-mock-factory * fix: :bug: housekeeping * fix: :bug: feedback * feat: :white_check_mark: add taxBase with discounts test * fix: :bug: address feedback * refactor: :fire: unused avatax-mock-factory functions * feat: :sparkles: use discount utils in all providers * feat: :sparkles: differentiate between pricesEnteredWithTax in taxjar
2023-05-29 08:35:34 +00:00
import { AvataxCalculateTaxesAdapter } from "./calculate-taxes/avatax-calculate-taxes-adapter";
import { AvataxOrderCreatedAdapter } from "./order-created/avatax-order-created-adapter";
import { AvataxOrderFulfilledAdapter } from "./order-fulfilled/avatax-order-fulfilled-adapter";
feat: finalize order process (#355) * feat: :sparkles: add dummy order-created * refactor: :fire: unused private-providers-configuration-service * feat: :sparkles: add dummy order-fulfilled * refactor: :truck: move provider-config * refactor: :truck: crudSettingsConfigurator -> crudSettingsManager * refactor: :recycle: [tax-provider].ts -> [tax-provider]-webhook.service.ts * feat: :sparkles: add dummy createOrder * refactor: :recycle: distinguish between salesOrder and salesInvoice in avatax * refactor: :truck: [provider]-calculate.ts to [provider]-transform.ts * refactor: :truck: ResponseTaxPayload to tax-provider-webhook.ts * refactor: :truck: ResponseTaxPayload -> CalculateTaxesResponse * refactor: :recycle: webhooks with active-tax-provider.service.ts * feat: :sparkles: add skeleton orderCreate functionality * refactor: :recycle: [provider]-transform.ts -> [provider]-[webhook]-transform.ts * feat: :sparkles: add order-fulfilled with avatax call * refactor: :recycle: move getActiveTaxProvider to active-tax-provider * refactor: :label: export types for [provider]-client function args * refactor: :truck: UpdateAppMetadata -> UpdateMetadata * feat: :sparkles: fulfill order with id from metadata * build: :arrow_up: upgrade avatax * feat: :sparkles: commit transaction on fulfill in avatax * fix: :bug: return of webhooks to ensure valid retry behavior * refactor: :truck: [provider]-[webhook]-transform -> [provider]-[webhook]-map * refactor: :label: export types of avatax-calculate-taxes mapPayload * refactor: :recycle: extract address-map to separate function * refactor: :recycle: remove schema.ts * refactor: :recycle: move addressSchema to channels-config.ts * feat: :sparkles: add tests & placeholder tests for avatax & taxjar maps * refactor: :recycle: throw error if no metadata * refactor: :recycle: change EXTERNAL_ID_KEY to PROVIDER_ORDER_ID_KEY add comments * refactor: :recycle: comments -> it.todo in tests * refactor: :bulb: add comment about shipping_item_code * refactor: :white_check_mark: add todo items for tests * refactor: :recycle: remove export and add sumLines to taxJarOrderCreated * refactor: :recycle: address-map with avatarAddressFactory * docs: :bulb: add comment about MOCKED_SALEOR_PAYLOAD * refactor: :recycle: remove export of mapLines and add to avataxCalculateTaxes * style: :art: add newline-after-var warn to eslint-config-saleor * style: :art: autofix newline-after-var in taxes * test: :white_check_mark: restructure tests according to new naming in address-map * refactor: :recycle: add shippingItemCode to avataxCalculateTaxes wrapper object * refactor: :truck: payloadProps -> payloadArgs * refactor: :recycle: add Maps suffix to map wrapper objects * refactor: :recycle: remove data: null from ActiveTaxProviderResult * refactor: :recycle: maintain the object hierarchy in tests * refactor: :recycle: refactor webhook responses with WebhookResponseFactory * build: :arrow_up: vitest * test: :white_check_mark: add tests for get-app-config-test * test: :white_check_mark: add tests for getActiveTaxProvider * refactor: :recycle: use address fragment for taxBase and order * refactor: :recycle: rename WebhookResponseFactory -> WebhookResponse * style: :construction_worker: add multiline-comment-style * fix: :bug: dummy test in get-app-config.test.ts * refactor: :recycle: rename AddressFragment -> Address * refactor: :recycle: use debug instead of error in webhook-response noRetry * refactor: :recycle: refactor as variables in mutation * build: :construction_worker: add changeset * refactor: :recycle: split changesets in two * build: :arrow_up: vite * build: :arrow_up: vite && vitest in all apps
2023-04-17 11:58:21 +00:00
export class AvataxWebhookService implements ProviderWebhookService {
config = defaultAvataxConfig;
client: AvataxClient;
private logger: Logger;
feat: finalize order process (#355) * feat: :sparkles: add dummy order-created * refactor: :fire: unused private-providers-configuration-service * feat: :sparkles: add dummy order-fulfilled * refactor: :truck: move provider-config * refactor: :truck: crudSettingsConfigurator -> crudSettingsManager * refactor: :recycle: [tax-provider].ts -> [tax-provider]-webhook.service.ts * feat: :sparkles: add dummy createOrder * refactor: :recycle: distinguish between salesOrder and salesInvoice in avatax * refactor: :truck: [provider]-calculate.ts to [provider]-transform.ts * refactor: :truck: ResponseTaxPayload to tax-provider-webhook.ts * refactor: :truck: ResponseTaxPayload -> CalculateTaxesResponse * refactor: :recycle: webhooks with active-tax-provider.service.ts * feat: :sparkles: add skeleton orderCreate functionality * refactor: :recycle: [provider]-transform.ts -> [provider]-[webhook]-transform.ts * feat: :sparkles: add order-fulfilled with avatax call * refactor: :recycle: move getActiveTaxProvider to active-tax-provider * refactor: :label: export types for [provider]-client function args * refactor: :truck: UpdateAppMetadata -> UpdateMetadata * feat: :sparkles: fulfill order with id from metadata * build: :arrow_up: upgrade avatax * feat: :sparkles: commit transaction on fulfill in avatax * fix: :bug: return of webhooks to ensure valid retry behavior * refactor: :truck: [provider]-[webhook]-transform -> [provider]-[webhook]-map * refactor: :label: export types of avatax-calculate-taxes mapPayload * refactor: :recycle: extract address-map to separate function * refactor: :recycle: remove schema.ts * refactor: :recycle: move addressSchema to channels-config.ts * feat: :sparkles: add tests & placeholder tests for avatax & taxjar maps * refactor: :recycle: throw error if no metadata * refactor: :recycle: change EXTERNAL_ID_KEY to PROVIDER_ORDER_ID_KEY add comments * refactor: :recycle: comments -> it.todo in tests * refactor: :bulb: add comment about shipping_item_code * refactor: :white_check_mark: add todo items for tests * refactor: :recycle: remove export and add sumLines to taxJarOrderCreated * refactor: :recycle: address-map with avatarAddressFactory * docs: :bulb: add comment about MOCKED_SALEOR_PAYLOAD * refactor: :recycle: remove export of mapLines and add to avataxCalculateTaxes * style: :art: add newline-after-var warn to eslint-config-saleor * style: :art: autofix newline-after-var in taxes * test: :white_check_mark: restructure tests according to new naming in address-map * refactor: :recycle: add shippingItemCode to avataxCalculateTaxes wrapper object * refactor: :truck: payloadProps -> payloadArgs * refactor: :recycle: add Maps suffix to map wrapper objects * refactor: :recycle: remove data: null from ActiveTaxProviderResult * refactor: :recycle: maintain the object hierarchy in tests * refactor: :recycle: refactor webhook responses with WebhookResponseFactory * build: :arrow_up: vitest * test: :white_check_mark: add tests for get-app-config-test * test: :white_check_mark: add tests for getActiveTaxProvider * refactor: :recycle: use address fragment for taxBase and order * refactor: :recycle: rename WebhookResponseFactory -> WebhookResponse * style: :construction_worker: add multiline-comment-style * fix: :bug: dummy test in get-app-config.test.ts * refactor: :recycle: rename AddressFragment -> Address * refactor: :recycle: use debug instead of error in webhook-response noRetry * refactor: :recycle: refactor as variables in mutation * build: :construction_worker: add changeset * refactor: :recycle: split changesets in two * build: :arrow_up: vite * build: :arrow_up: vite && vitest in all apps
2023-04-17 11:58:21 +00:00
constructor(config: AvataxConfig) {
this.logger = createLogger({
service: "AvataxWebhookService",
});
const avataxClient = new AvataxClient(config);
this.logger.trace({ client: avataxClient }, "Internal Avatax client created");
this.config = config;
this.client = avataxClient;
}
refactor: refine taxjar (#494) * feat: :white_check_mark: add first tests & use address-factory * feat: :sparkles: add distributeDiscount * refactor: taxjar maps to adapters (#495) * refactor: :recycle: taxjar-calculate-taxes-map with taxjar-calculate-taxes-adapter * refactor: :recycle: taxjar-order-created-map -> taxjar-order-created-adapter * refactor: :recycle: address 1st batch of feedback * refactor: :recycle: split up taxjar-calculate-taxes-adapter * refactor: :truck: extract shipping transformer * docs: :bulb: add comment about refunds in distribute-discount * refactor: :truck: split up taxjar-order-created-adapter classes * refactor: :recycle: mocks with taxjar-mock-factory * refactor: :recycle: mocks with avatax-mock-factory * refactor: avatax maps to adapters (#506) * refactor: :recycle: move around & refactor avatax-order-created-map -> adapter * refactor: :truck: move avatax-order-created- to its own folder * refactor: :recycle: avatax-calculate-taxes-map -> adapter * refactor: :recycle: avatax-order-fulfilled-maps -> adapter * feat: :sparkles: add logger to adapters * refactor: :recycle: mocks -> avatax-mock-transaction-factory & fix tests * feat: add tests for taxjar (#509) * fix: :truck: tax-provider-utils.test name * feat: :white_check_mark: add nexus tests & other taxjar tests * feat: :goal_net: add ExpectedError and use it in webhook-response * refactor: :white_check_mark: unify taxjar-calculate-taxes tests with mock-generator * feat: :white_check_mark: add TaxJarOrderCreatedMockGenerator * feat: :white_check_mark: add avatax-calculate-taxes-mock-generator * feat: :white_check_mark: add AvataxOrderCreatedMockGenerator * refactor: :fire: tax-mock-factory * fix: :bug: housekeeping * fix: :bug: feedback * feat: :white_check_mark: add taxBase with discounts test * fix: :bug: address feedback * refactor: :fire: unused avatax-mock-factory functions * feat: :sparkles: use discount utils in all providers * feat: :sparkles: differentiate between pricesEnteredWithTax in taxjar
2023-05-29 08:35:34 +00:00
async calculateTaxes(taxBase: TaxBaseFragment, channelConfig: ChannelConfig) {
this.logger.debug({ taxBase, channelConfig }, "calculateTaxes called with:");
const adapter = new AvataxCalculateTaxesAdapter(this.config);
const response = await adapter.send({ channelConfig, taxBase });
feat: finalize order process (#355) * feat: :sparkles: add dummy order-created * refactor: :fire: unused private-providers-configuration-service * feat: :sparkles: add dummy order-fulfilled * refactor: :truck: move provider-config * refactor: :truck: crudSettingsConfigurator -> crudSettingsManager * refactor: :recycle: [tax-provider].ts -> [tax-provider]-webhook.service.ts * feat: :sparkles: add dummy createOrder * refactor: :recycle: distinguish between salesOrder and salesInvoice in avatax * refactor: :truck: [provider]-calculate.ts to [provider]-transform.ts * refactor: :truck: ResponseTaxPayload to tax-provider-webhook.ts * refactor: :truck: ResponseTaxPayload -> CalculateTaxesResponse * refactor: :recycle: webhooks with active-tax-provider.service.ts * feat: :sparkles: add skeleton orderCreate functionality * refactor: :recycle: [provider]-transform.ts -> [provider]-[webhook]-transform.ts * feat: :sparkles: add order-fulfilled with avatax call * refactor: :recycle: move getActiveTaxProvider to active-tax-provider * refactor: :label: export types for [provider]-client function args * refactor: :truck: UpdateAppMetadata -> UpdateMetadata * feat: :sparkles: fulfill order with id from metadata * build: :arrow_up: upgrade avatax * feat: :sparkles: commit transaction on fulfill in avatax * fix: :bug: return of webhooks to ensure valid retry behavior * refactor: :truck: [provider]-[webhook]-transform -> [provider]-[webhook]-map * refactor: :label: export types of avatax-calculate-taxes mapPayload * refactor: :recycle: extract address-map to separate function * refactor: :recycle: remove schema.ts * refactor: :recycle: move addressSchema to channels-config.ts * feat: :sparkles: add tests & placeholder tests for avatax & taxjar maps * refactor: :recycle: throw error if no metadata * refactor: :recycle: change EXTERNAL_ID_KEY to PROVIDER_ORDER_ID_KEY add comments * refactor: :recycle: comments -> it.todo in tests * refactor: :bulb: add comment about shipping_item_code * refactor: :white_check_mark: add todo items for tests * refactor: :recycle: remove export and add sumLines to taxJarOrderCreated * refactor: :recycle: address-map with avatarAddressFactory * docs: :bulb: add comment about MOCKED_SALEOR_PAYLOAD * refactor: :recycle: remove export of mapLines and add to avataxCalculateTaxes * style: :art: add newline-after-var warn to eslint-config-saleor * style: :art: autofix newline-after-var in taxes * test: :white_check_mark: restructure tests according to new naming in address-map * refactor: :recycle: add shippingItemCode to avataxCalculateTaxes wrapper object * refactor: :truck: payloadProps -> payloadArgs * refactor: :recycle: add Maps suffix to map wrapper objects * refactor: :recycle: remove data: null from ActiveTaxProviderResult * refactor: :recycle: maintain the object hierarchy in tests * refactor: :recycle: refactor webhook responses with WebhookResponseFactory * build: :arrow_up: vitest * test: :white_check_mark: add tests for get-app-config-test * test: :white_check_mark: add tests for getActiveTaxProvider * refactor: :recycle: use address fragment for taxBase and order * refactor: :recycle: rename WebhookResponseFactory -> WebhookResponse * style: :construction_worker: add multiline-comment-style * fix: :bug: dummy test in get-app-config.test.ts * refactor: :recycle: rename AddressFragment -> Address * refactor: :recycle: use debug instead of error in webhook-response noRetry * refactor: :recycle: refactor as variables in mutation * build: :construction_worker: add changeset * refactor: :recycle: split changesets in two * build: :arrow_up: vite * build: :arrow_up: vite && vitest in all apps
2023-04-17 11:58:21 +00:00
refactor: refine taxjar (#494) * feat: :white_check_mark: add first tests & use address-factory * feat: :sparkles: add distributeDiscount * refactor: taxjar maps to adapters (#495) * refactor: :recycle: taxjar-calculate-taxes-map with taxjar-calculate-taxes-adapter * refactor: :recycle: taxjar-order-created-map -> taxjar-order-created-adapter * refactor: :recycle: address 1st batch of feedback * refactor: :recycle: split up taxjar-calculate-taxes-adapter * refactor: :truck: extract shipping transformer * docs: :bulb: add comment about refunds in distribute-discount * refactor: :truck: split up taxjar-order-created-adapter classes * refactor: :recycle: mocks with taxjar-mock-factory * refactor: :recycle: mocks with avatax-mock-factory * refactor: avatax maps to adapters (#506) * refactor: :recycle: move around & refactor avatax-order-created-map -> adapter * refactor: :truck: move avatax-order-created- to its own folder * refactor: :recycle: avatax-calculate-taxes-map -> adapter * refactor: :recycle: avatax-order-fulfilled-maps -> adapter * feat: :sparkles: add logger to adapters * refactor: :recycle: mocks -> avatax-mock-transaction-factory & fix tests * feat: add tests for taxjar (#509) * fix: :truck: tax-provider-utils.test name * feat: :white_check_mark: add nexus tests & other taxjar tests * feat: :goal_net: add ExpectedError and use it in webhook-response * refactor: :white_check_mark: unify taxjar-calculate-taxes tests with mock-generator * feat: :white_check_mark: add TaxJarOrderCreatedMockGenerator * feat: :white_check_mark: add avatax-calculate-taxes-mock-generator * feat: :white_check_mark: add AvataxOrderCreatedMockGenerator * refactor: :fire: tax-mock-factory * fix: :bug: housekeeping * fix: :bug: feedback * feat: :white_check_mark: add taxBase with discounts test * fix: :bug: address feedback * refactor: :fire: unused avatax-mock-factory functions * feat: :sparkles: use discount utils in all providers * feat: :sparkles: differentiate between pricesEnteredWithTax in taxjar
2023-05-29 08:35:34 +00:00
this.logger.debug({ response }, "calculateTaxes response:");
return response;
feat: finalize order process (#355) * feat: :sparkles: add dummy order-created * refactor: :fire: unused private-providers-configuration-service * feat: :sparkles: add dummy order-fulfilled * refactor: :truck: move provider-config * refactor: :truck: crudSettingsConfigurator -> crudSettingsManager * refactor: :recycle: [tax-provider].ts -> [tax-provider]-webhook.service.ts * feat: :sparkles: add dummy createOrder * refactor: :recycle: distinguish between salesOrder and salesInvoice in avatax * refactor: :truck: [provider]-calculate.ts to [provider]-transform.ts * refactor: :truck: ResponseTaxPayload to tax-provider-webhook.ts * refactor: :truck: ResponseTaxPayload -> CalculateTaxesResponse * refactor: :recycle: webhooks with active-tax-provider.service.ts * feat: :sparkles: add skeleton orderCreate functionality * refactor: :recycle: [provider]-transform.ts -> [provider]-[webhook]-transform.ts * feat: :sparkles: add order-fulfilled with avatax call * refactor: :recycle: move getActiveTaxProvider to active-tax-provider * refactor: :label: export types for [provider]-client function args * refactor: :truck: UpdateAppMetadata -> UpdateMetadata * feat: :sparkles: fulfill order with id from metadata * build: :arrow_up: upgrade avatax * feat: :sparkles: commit transaction on fulfill in avatax * fix: :bug: return of webhooks to ensure valid retry behavior * refactor: :truck: [provider]-[webhook]-transform -> [provider]-[webhook]-map * refactor: :label: export types of avatax-calculate-taxes mapPayload * refactor: :recycle: extract address-map to separate function * refactor: :recycle: remove schema.ts * refactor: :recycle: move addressSchema to channels-config.ts * feat: :sparkles: add tests & placeholder tests for avatax & taxjar maps * refactor: :recycle: throw error if no metadata * refactor: :recycle: change EXTERNAL_ID_KEY to PROVIDER_ORDER_ID_KEY add comments * refactor: :recycle: comments -> it.todo in tests * refactor: :bulb: add comment about shipping_item_code * refactor: :white_check_mark: add todo items for tests * refactor: :recycle: remove export and add sumLines to taxJarOrderCreated * refactor: :recycle: address-map with avatarAddressFactory * docs: :bulb: add comment about MOCKED_SALEOR_PAYLOAD * refactor: :recycle: remove export of mapLines and add to avataxCalculateTaxes * style: :art: add newline-after-var warn to eslint-config-saleor * style: :art: autofix newline-after-var in taxes * test: :white_check_mark: restructure tests according to new naming in address-map * refactor: :recycle: add shippingItemCode to avataxCalculateTaxes wrapper object * refactor: :truck: payloadProps -> payloadArgs * refactor: :recycle: add Maps suffix to map wrapper objects * refactor: :recycle: remove data: null from ActiveTaxProviderResult * refactor: :recycle: maintain the object hierarchy in tests * refactor: :recycle: refactor webhook responses with WebhookResponseFactory * build: :arrow_up: vitest * test: :white_check_mark: add tests for get-app-config-test * test: :white_check_mark: add tests for getActiveTaxProvider * refactor: :recycle: use address fragment for taxBase and order * refactor: :recycle: rename WebhookResponseFactory -> WebhookResponse * style: :construction_worker: add multiline-comment-style * fix: :bug: dummy test in get-app-config.test.ts * refactor: :recycle: rename AddressFragment -> Address * refactor: :recycle: use debug instead of error in webhook-response noRetry * refactor: :recycle: refactor as variables in mutation * build: :construction_worker: add changeset * refactor: :recycle: split changesets in two * build: :arrow_up: vite * build: :arrow_up: vite && vitest in all apps
2023-04-17 11:58:21 +00:00
}
refactor: refine taxjar (#494) * feat: :white_check_mark: add first tests & use address-factory * feat: :sparkles: add distributeDiscount * refactor: taxjar maps to adapters (#495) * refactor: :recycle: taxjar-calculate-taxes-map with taxjar-calculate-taxes-adapter * refactor: :recycle: taxjar-order-created-map -> taxjar-order-created-adapter * refactor: :recycle: address 1st batch of feedback * refactor: :recycle: split up taxjar-calculate-taxes-adapter * refactor: :truck: extract shipping transformer * docs: :bulb: add comment about refunds in distribute-discount * refactor: :truck: split up taxjar-order-created-adapter classes * refactor: :recycle: mocks with taxjar-mock-factory * refactor: :recycle: mocks with avatax-mock-factory * refactor: avatax maps to adapters (#506) * refactor: :recycle: move around & refactor avatax-order-created-map -> adapter * refactor: :truck: move avatax-order-created- to its own folder * refactor: :recycle: avatax-calculate-taxes-map -> adapter * refactor: :recycle: avatax-order-fulfilled-maps -> adapter * feat: :sparkles: add logger to adapters * refactor: :recycle: mocks -> avatax-mock-transaction-factory & fix tests * feat: add tests for taxjar (#509) * fix: :truck: tax-provider-utils.test name * feat: :white_check_mark: add nexus tests & other taxjar tests * feat: :goal_net: add ExpectedError and use it in webhook-response * refactor: :white_check_mark: unify taxjar-calculate-taxes tests with mock-generator * feat: :white_check_mark: add TaxJarOrderCreatedMockGenerator * feat: :white_check_mark: add avatax-calculate-taxes-mock-generator * feat: :white_check_mark: add AvataxOrderCreatedMockGenerator * refactor: :fire: tax-mock-factory * fix: :bug: housekeeping * fix: :bug: feedback * feat: :white_check_mark: add taxBase with discounts test * fix: :bug: address feedback * refactor: :fire: unused avatax-mock-factory functions * feat: :sparkles: use discount utils in all providers * feat: :sparkles: differentiate between pricesEnteredWithTax in taxjar
2023-05-29 08:35:34 +00:00
async createOrder(order: OrderCreatedSubscriptionFragment, channelConfig: ChannelConfig) {
this.logger.debug({ order, channelConfig }, "createOrder called with:");
const adapter = new AvataxOrderCreatedAdapter(this.config);
feat: finalize order process (#355) * feat: :sparkles: add dummy order-created * refactor: :fire: unused private-providers-configuration-service * feat: :sparkles: add dummy order-fulfilled * refactor: :truck: move provider-config * refactor: :truck: crudSettingsConfigurator -> crudSettingsManager * refactor: :recycle: [tax-provider].ts -> [tax-provider]-webhook.service.ts * feat: :sparkles: add dummy createOrder * refactor: :recycle: distinguish between salesOrder and salesInvoice in avatax * refactor: :truck: [provider]-calculate.ts to [provider]-transform.ts * refactor: :truck: ResponseTaxPayload to tax-provider-webhook.ts * refactor: :truck: ResponseTaxPayload -> CalculateTaxesResponse * refactor: :recycle: webhooks with active-tax-provider.service.ts * feat: :sparkles: add skeleton orderCreate functionality * refactor: :recycle: [provider]-transform.ts -> [provider]-[webhook]-transform.ts * feat: :sparkles: add order-fulfilled with avatax call * refactor: :recycle: move getActiveTaxProvider to active-tax-provider * refactor: :label: export types for [provider]-client function args * refactor: :truck: UpdateAppMetadata -> UpdateMetadata * feat: :sparkles: fulfill order with id from metadata * build: :arrow_up: upgrade avatax * feat: :sparkles: commit transaction on fulfill in avatax * fix: :bug: return of webhooks to ensure valid retry behavior * refactor: :truck: [provider]-[webhook]-transform -> [provider]-[webhook]-map * refactor: :label: export types of avatax-calculate-taxes mapPayload * refactor: :recycle: extract address-map to separate function * refactor: :recycle: remove schema.ts * refactor: :recycle: move addressSchema to channels-config.ts * feat: :sparkles: add tests & placeholder tests for avatax & taxjar maps * refactor: :recycle: throw error if no metadata * refactor: :recycle: change EXTERNAL_ID_KEY to PROVIDER_ORDER_ID_KEY add comments * refactor: :recycle: comments -> it.todo in tests * refactor: :bulb: add comment about shipping_item_code * refactor: :white_check_mark: add todo items for tests * refactor: :recycle: remove export and add sumLines to taxJarOrderCreated * refactor: :recycle: address-map with avatarAddressFactory * docs: :bulb: add comment about MOCKED_SALEOR_PAYLOAD * refactor: :recycle: remove export of mapLines and add to avataxCalculateTaxes * style: :art: add newline-after-var warn to eslint-config-saleor * style: :art: autofix newline-after-var in taxes * test: :white_check_mark: restructure tests according to new naming in address-map * refactor: :recycle: add shippingItemCode to avataxCalculateTaxes wrapper object * refactor: :truck: payloadProps -> payloadArgs * refactor: :recycle: add Maps suffix to map wrapper objects * refactor: :recycle: remove data: null from ActiveTaxProviderResult * refactor: :recycle: maintain the object hierarchy in tests * refactor: :recycle: refactor webhook responses with WebhookResponseFactory * build: :arrow_up: vitest * test: :white_check_mark: add tests for get-app-config-test * test: :white_check_mark: add tests for getActiveTaxProvider * refactor: :recycle: use address fragment for taxBase and order * refactor: :recycle: rename WebhookResponseFactory -> WebhookResponse * style: :construction_worker: add multiline-comment-style * fix: :bug: dummy test in get-app-config.test.ts * refactor: :recycle: rename AddressFragment -> Address * refactor: :recycle: use debug instead of error in webhook-response noRetry * refactor: :recycle: refactor as variables in mutation * build: :construction_worker: add changeset * refactor: :recycle: split changesets in two * build: :arrow_up: vite * build: :arrow_up: vite && vitest in all apps
2023-04-17 11:58:21 +00:00
refactor: refine taxjar (#494) * feat: :white_check_mark: add first tests & use address-factory * feat: :sparkles: add distributeDiscount * refactor: taxjar maps to adapters (#495) * refactor: :recycle: taxjar-calculate-taxes-map with taxjar-calculate-taxes-adapter * refactor: :recycle: taxjar-order-created-map -> taxjar-order-created-adapter * refactor: :recycle: address 1st batch of feedback * refactor: :recycle: split up taxjar-calculate-taxes-adapter * refactor: :truck: extract shipping transformer * docs: :bulb: add comment about refunds in distribute-discount * refactor: :truck: split up taxjar-order-created-adapter classes * refactor: :recycle: mocks with taxjar-mock-factory * refactor: :recycle: mocks with avatax-mock-factory * refactor: avatax maps to adapters (#506) * refactor: :recycle: move around & refactor avatax-order-created-map -> adapter * refactor: :truck: move avatax-order-created- to its own folder * refactor: :recycle: avatax-calculate-taxes-map -> adapter * refactor: :recycle: avatax-order-fulfilled-maps -> adapter * feat: :sparkles: add logger to adapters * refactor: :recycle: mocks -> avatax-mock-transaction-factory & fix tests * feat: add tests for taxjar (#509) * fix: :truck: tax-provider-utils.test name * feat: :white_check_mark: add nexus tests & other taxjar tests * feat: :goal_net: add ExpectedError and use it in webhook-response * refactor: :white_check_mark: unify taxjar-calculate-taxes tests with mock-generator * feat: :white_check_mark: add TaxJarOrderCreatedMockGenerator * feat: :white_check_mark: add avatax-calculate-taxes-mock-generator * feat: :white_check_mark: add AvataxOrderCreatedMockGenerator * refactor: :fire: tax-mock-factory * fix: :bug: housekeeping * fix: :bug: feedback * feat: :white_check_mark: add taxBase with discounts test * fix: :bug: address feedback * refactor: :fire: unused avatax-mock-factory functions * feat: :sparkles: use discount utils in all providers * feat: :sparkles: differentiate between pricesEnteredWithTax in taxjar
2023-05-29 08:35:34 +00:00
const response = await adapter.send({ channelConfig, order });
feat: finalize order process (#355) * feat: :sparkles: add dummy order-created * refactor: :fire: unused private-providers-configuration-service * feat: :sparkles: add dummy order-fulfilled * refactor: :truck: move provider-config * refactor: :truck: crudSettingsConfigurator -> crudSettingsManager * refactor: :recycle: [tax-provider].ts -> [tax-provider]-webhook.service.ts * feat: :sparkles: add dummy createOrder * refactor: :recycle: distinguish between salesOrder and salesInvoice in avatax * refactor: :truck: [provider]-calculate.ts to [provider]-transform.ts * refactor: :truck: ResponseTaxPayload to tax-provider-webhook.ts * refactor: :truck: ResponseTaxPayload -> CalculateTaxesResponse * refactor: :recycle: webhooks with active-tax-provider.service.ts * feat: :sparkles: add skeleton orderCreate functionality * refactor: :recycle: [provider]-transform.ts -> [provider]-[webhook]-transform.ts * feat: :sparkles: add order-fulfilled with avatax call * refactor: :recycle: move getActiveTaxProvider to active-tax-provider * refactor: :label: export types for [provider]-client function args * refactor: :truck: UpdateAppMetadata -> UpdateMetadata * feat: :sparkles: fulfill order with id from metadata * build: :arrow_up: upgrade avatax * feat: :sparkles: commit transaction on fulfill in avatax * fix: :bug: return of webhooks to ensure valid retry behavior * refactor: :truck: [provider]-[webhook]-transform -> [provider]-[webhook]-map * refactor: :label: export types of avatax-calculate-taxes mapPayload * refactor: :recycle: extract address-map to separate function * refactor: :recycle: remove schema.ts * refactor: :recycle: move addressSchema to channels-config.ts * feat: :sparkles: add tests & placeholder tests for avatax & taxjar maps * refactor: :recycle: throw error if no metadata * refactor: :recycle: change EXTERNAL_ID_KEY to PROVIDER_ORDER_ID_KEY add comments * refactor: :recycle: comments -> it.todo in tests * refactor: :bulb: add comment about shipping_item_code * refactor: :white_check_mark: add todo items for tests * refactor: :recycle: remove export and add sumLines to taxJarOrderCreated * refactor: :recycle: address-map with avatarAddressFactory * docs: :bulb: add comment about MOCKED_SALEOR_PAYLOAD * refactor: :recycle: remove export of mapLines and add to avataxCalculateTaxes * style: :art: add newline-after-var warn to eslint-config-saleor * style: :art: autofix newline-after-var in taxes * test: :white_check_mark: restructure tests according to new naming in address-map * refactor: :recycle: add shippingItemCode to avataxCalculateTaxes wrapper object * refactor: :truck: payloadProps -> payloadArgs * refactor: :recycle: add Maps suffix to map wrapper objects * refactor: :recycle: remove data: null from ActiveTaxProviderResult * refactor: :recycle: maintain the object hierarchy in tests * refactor: :recycle: refactor webhook responses with WebhookResponseFactory * build: :arrow_up: vitest * test: :white_check_mark: add tests for get-app-config-test * test: :white_check_mark: add tests for getActiveTaxProvider * refactor: :recycle: use address fragment for taxBase and order * refactor: :recycle: rename WebhookResponseFactory -> WebhookResponse * style: :construction_worker: add multiline-comment-style * fix: :bug: dummy test in get-app-config.test.ts * refactor: :recycle: rename AddressFragment -> Address * refactor: :recycle: use debug instead of error in webhook-response noRetry * refactor: :recycle: refactor as variables in mutation * build: :construction_worker: add changeset * refactor: :recycle: split changesets in two * build: :arrow_up: vite * build: :arrow_up: vite && vitest in all apps
2023-04-17 11:58:21 +00:00
refactor: refine taxjar (#494) * feat: :white_check_mark: add first tests & use address-factory * feat: :sparkles: add distributeDiscount * refactor: taxjar maps to adapters (#495) * refactor: :recycle: taxjar-calculate-taxes-map with taxjar-calculate-taxes-adapter * refactor: :recycle: taxjar-order-created-map -> taxjar-order-created-adapter * refactor: :recycle: address 1st batch of feedback * refactor: :recycle: split up taxjar-calculate-taxes-adapter * refactor: :truck: extract shipping transformer * docs: :bulb: add comment about refunds in distribute-discount * refactor: :truck: split up taxjar-order-created-adapter classes * refactor: :recycle: mocks with taxjar-mock-factory * refactor: :recycle: mocks with avatax-mock-factory * refactor: avatax maps to adapters (#506) * refactor: :recycle: move around & refactor avatax-order-created-map -> adapter * refactor: :truck: move avatax-order-created- to its own folder * refactor: :recycle: avatax-calculate-taxes-map -> adapter * refactor: :recycle: avatax-order-fulfilled-maps -> adapter * feat: :sparkles: add logger to adapters * refactor: :recycle: mocks -> avatax-mock-transaction-factory & fix tests * feat: add tests for taxjar (#509) * fix: :truck: tax-provider-utils.test name * feat: :white_check_mark: add nexus tests & other taxjar tests * feat: :goal_net: add ExpectedError and use it in webhook-response * refactor: :white_check_mark: unify taxjar-calculate-taxes tests with mock-generator * feat: :white_check_mark: add TaxJarOrderCreatedMockGenerator * feat: :white_check_mark: add avatax-calculate-taxes-mock-generator * feat: :white_check_mark: add AvataxOrderCreatedMockGenerator * refactor: :fire: tax-mock-factory * fix: :bug: housekeeping * fix: :bug: feedback * feat: :white_check_mark: add taxBase with discounts test * fix: :bug: address feedback * refactor: :fire: unused avatax-mock-factory functions * feat: :sparkles: use discount utils in all providers * feat: :sparkles: differentiate between pricesEnteredWithTax in taxjar
2023-05-29 08:35:34 +00:00
this.logger.debug({ response }, "createOrder response:");
return response;
feat: finalize order process (#355) * feat: :sparkles: add dummy order-created * refactor: :fire: unused private-providers-configuration-service * feat: :sparkles: add dummy order-fulfilled * refactor: :truck: move provider-config * refactor: :truck: crudSettingsConfigurator -> crudSettingsManager * refactor: :recycle: [tax-provider].ts -> [tax-provider]-webhook.service.ts * feat: :sparkles: add dummy createOrder * refactor: :recycle: distinguish between salesOrder and salesInvoice in avatax * refactor: :truck: [provider]-calculate.ts to [provider]-transform.ts * refactor: :truck: ResponseTaxPayload to tax-provider-webhook.ts * refactor: :truck: ResponseTaxPayload -> CalculateTaxesResponse * refactor: :recycle: webhooks with active-tax-provider.service.ts * feat: :sparkles: add skeleton orderCreate functionality * refactor: :recycle: [provider]-transform.ts -> [provider]-[webhook]-transform.ts * feat: :sparkles: add order-fulfilled with avatax call * refactor: :recycle: move getActiveTaxProvider to active-tax-provider * refactor: :label: export types for [provider]-client function args * refactor: :truck: UpdateAppMetadata -> UpdateMetadata * feat: :sparkles: fulfill order with id from metadata * build: :arrow_up: upgrade avatax * feat: :sparkles: commit transaction on fulfill in avatax * fix: :bug: return of webhooks to ensure valid retry behavior * refactor: :truck: [provider]-[webhook]-transform -> [provider]-[webhook]-map * refactor: :label: export types of avatax-calculate-taxes mapPayload * refactor: :recycle: extract address-map to separate function * refactor: :recycle: remove schema.ts * refactor: :recycle: move addressSchema to channels-config.ts * feat: :sparkles: add tests & placeholder tests for avatax & taxjar maps * refactor: :recycle: throw error if no metadata * refactor: :recycle: change EXTERNAL_ID_KEY to PROVIDER_ORDER_ID_KEY add comments * refactor: :recycle: comments -> it.todo in tests * refactor: :bulb: add comment about shipping_item_code * refactor: :white_check_mark: add todo items for tests * refactor: :recycle: remove export and add sumLines to taxJarOrderCreated * refactor: :recycle: address-map with avatarAddressFactory * docs: :bulb: add comment about MOCKED_SALEOR_PAYLOAD * refactor: :recycle: remove export of mapLines and add to avataxCalculateTaxes * style: :art: add newline-after-var warn to eslint-config-saleor * style: :art: autofix newline-after-var in taxes * test: :white_check_mark: restructure tests according to new naming in address-map * refactor: :recycle: add shippingItemCode to avataxCalculateTaxes wrapper object * refactor: :truck: payloadProps -> payloadArgs * refactor: :recycle: add Maps suffix to map wrapper objects * refactor: :recycle: remove data: null from ActiveTaxProviderResult * refactor: :recycle: maintain the object hierarchy in tests * refactor: :recycle: refactor webhook responses with WebhookResponseFactory * build: :arrow_up: vitest * test: :white_check_mark: add tests for get-app-config-test * test: :white_check_mark: add tests for getActiveTaxProvider * refactor: :recycle: use address fragment for taxBase and order * refactor: :recycle: rename WebhookResponseFactory -> WebhookResponse * style: :construction_worker: add multiline-comment-style * fix: :bug: dummy test in get-app-config.test.ts * refactor: :recycle: rename AddressFragment -> Address * refactor: :recycle: use debug instead of error in webhook-response noRetry * refactor: :recycle: refactor as variables in mutation * build: :construction_worker: add changeset * refactor: :recycle: split changesets in two * build: :arrow_up: vite * build: :arrow_up: vite && vitest in all apps
2023-04-17 11:58:21 +00:00
}
refactor: refine taxjar (#494) * feat: :white_check_mark: add first tests & use address-factory * feat: :sparkles: add distributeDiscount * refactor: taxjar maps to adapters (#495) * refactor: :recycle: taxjar-calculate-taxes-map with taxjar-calculate-taxes-adapter * refactor: :recycle: taxjar-order-created-map -> taxjar-order-created-adapter * refactor: :recycle: address 1st batch of feedback * refactor: :recycle: split up taxjar-calculate-taxes-adapter * refactor: :truck: extract shipping transformer * docs: :bulb: add comment about refunds in distribute-discount * refactor: :truck: split up taxjar-order-created-adapter classes * refactor: :recycle: mocks with taxjar-mock-factory * refactor: :recycle: mocks with avatax-mock-factory * refactor: avatax maps to adapters (#506) * refactor: :recycle: move around & refactor avatax-order-created-map -> adapter * refactor: :truck: move avatax-order-created- to its own folder * refactor: :recycle: avatax-calculate-taxes-map -> adapter * refactor: :recycle: avatax-order-fulfilled-maps -> adapter * feat: :sparkles: add logger to adapters * refactor: :recycle: mocks -> avatax-mock-transaction-factory & fix tests * feat: add tests for taxjar (#509) * fix: :truck: tax-provider-utils.test name * feat: :white_check_mark: add nexus tests & other taxjar tests * feat: :goal_net: add ExpectedError and use it in webhook-response * refactor: :white_check_mark: unify taxjar-calculate-taxes tests with mock-generator * feat: :white_check_mark: add TaxJarOrderCreatedMockGenerator * feat: :white_check_mark: add avatax-calculate-taxes-mock-generator * feat: :white_check_mark: add AvataxOrderCreatedMockGenerator * refactor: :fire: tax-mock-factory * fix: :bug: housekeeping * fix: :bug: feedback * feat: :white_check_mark: add taxBase with discounts test * fix: :bug: address feedback * refactor: :fire: unused avatax-mock-factory functions * feat: :sparkles: use discount utils in all providers * feat: :sparkles: differentiate between pricesEnteredWithTax in taxjar
2023-05-29 08:35:34 +00:00
async fulfillOrder(order: OrderFulfilledSubscriptionFragment, channelConfig: ChannelConfig) {
this.logger.debug({ order, channelConfig }, "fulfillOrder called with:");
const adapter = new AvataxOrderFulfilledAdapter(this.config);
const response = await adapter.send({ order });
feat: finalize order process (#355) * feat: :sparkles: add dummy order-created * refactor: :fire: unused private-providers-configuration-service * feat: :sparkles: add dummy order-fulfilled * refactor: :truck: move provider-config * refactor: :truck: crudSettingsConfigurator -> crudSettingsManager * refactor: :recycle: [tax-provider].ts -> [tax-provider]-webhook.service.ts * feat: :sparkles: add dummy createOrder * refactor: :recycle: distinguish between salesOrder and salesInvoice in avatax * refactor: :truck: [provider]-calculate.ts to [provider]-transform.ts * refactor: :truck: ResponseTaxPayload to tax-provider-webhook.ts * refactor: :truck: ResponseTaxPayload -> CalculateTaxesResponse * refactor: :recycle: webhooks with active-tax-provider.service.ts * feat: :sparkles: add skeleton orderCreate functionality * refactor: :recycle: [provider]-transform.ts -> [provider]-[webhook]-transform.ts * feat: :sparkles: add order-fulfilled with avatax call * refactor: :recycle: move getActiveTaxProvider to active-tax-provider * refactor: :label: export types for [provider]-client function args * refactor: :truck: UpdateAppMetadata -> UpdateMetadata * feat: :sparkles: fulfill order with id from metadata * build: :arrow_up: upgrade avatax * feat: :sparkles: commit transaction on fulfill in avatax * fix: :bug: return of webhooks to ensure valid retry behavior * refactor: :truck: [provider]-[webhook]-transform -> [provider]-[webhook]-map * refactor: :label: export types of avatax-calculate-taxes mapPayload * refactor: :recycle: extract address-map to separate function * refactor: :recycle: remove schema.ts * refactor: :recycle: move addressSchema to channels-config.ts * feat: :sparkles: add tests & placeholder tests for avatax & taxjar maps * refactor: :recycle: throw error if no metadata * refactor: :recycle: change EXTERNAL_ID_KEY to PROVIDER_ORDER_ID_KEY add comments * refactor: :recycle: comments -> it.todo in tests * refactor: :bulb: add comment about shipping_item_code * refactor: :white_check_mark: add todo items for tests * refactor: :recycle: remove export and add sumLines to taxJarOrderCreated * refactor: :recycle: address-map with avatarAddressFactory * docs: :bulb: add comment about MOCKED_SALEOR_PAYLOAD * refactor: :recycle: remove export of mapLines and add to avataxCalculateTaxes * style: :art: add newline-after-var warn to eslint-config-saleor * style: :art: autofix newline-after-var in taxes * test: :white_check_mark: restructure tests according to new naming in address-map * refactor: :recycle: add shippingItemCode to avataxCalculateTaxes wrapper object * refactor: :truck: payloadProps -> payloadArgs * refactor: :recycle: add Maps suffix to map wrapper objects * refactor: :recycle: remove data: null from ActiveTaxProviderResult * refactor: :recycle: maintain the object hierarchy in tests * refactor: :recycle: refactor webhook responses with WebhookResponseFactory * build: :arrow_up: vitest * test: :white_check_mark: add tests for get-app-config-test * test: :white_check_mark: add tests for getActiveTaxProvider * refactor: :recycle: use address fragment for taxBase and order * refactor: :recycle: rename WebhookResponseFactory -> WebhookResponse * style: :construction_worker: add multiline-comment-style * fix: :bug: dummy test in get-app-config.test.ts * refactor: :recycle: rename AddressFragment -> Address * refactor: :recycle: use debug instead of error in webhook-response noRetry * refactor: :recycle: refactor as variables in mutation * build: :construction_worker: add changeset * refactor: :recycle: split changesets in two * build: :arrow_up: vite * build: :arrow_up: vite && vitest in all apps
2023-04-17 11:58:21 +00:00
refactor: refine taxjar (#494) * feat: :white_check_mark: add first tests & use address-factory * feat: :sparkles: add distributeDiscount * refactor: taxjar maps to adapters (#495) * refactor: :recycle: taxjar-calculate-taxes-map with taxjar-calculate-taxes-adapter * refactor: :recycle: taxjar-order-created-map -> taxjar-order-created-adapter * refactor: :recycle: address 1st batch of feedback * refactor: :recycle: split up taxjar-calculate-taxes-adapter * refactor: :truck: extract shipping transformer * docs: :bulb: add comment about refunds in distribute-discount * refactor: :truck: split up taxjar-order-created-adapter classes * refactor: :recycle: mocks with taxjar-mock-factory * refactor: :recycle: mocks with avatax-mock-factory * refactor: avatax maps to adapters (#506) * refactor: :recycle: move around & refactor avatax-order-created-map -> adapter * refactor: :truck: move avatax-order-created- to its own folder * refactor: :recycle: avatax-calculate-taxes-map -> adapter * refactor: :recycle: avatax-order-fulfilled-maps -> adapter * feat: :sparkles: add logger to adapters * refactor: :recycle: mocks -> avatax-mock-transaction-factory & fix tests * feat: add tests for taxjar (#509) * fix: :truck: tax-provider-utils.test name * feat: :white_check_mark: add nexus tests & other taxjar tests * feat: :goal_net: add ExpectedError and use it in webhook-response * refactor: :white_check_mark: unify taxjar-calculate-taxes tests with mock-generator * feat: :white_check_mark: add TaxJarOrderCreatedMockGenerator * feat: :white_check_mark: add avatax-calculate-taxes-mock-generator * feat: :white_check_mark: add AvataxOrderCreatedMockGenerator * refactor: :fire: tax-mock-factory * fix: :bug: housekeeping * fix: :bug: feedback * feat: :white_check_mark: add taxBase with discounts test * fix: :bug: address feedback * refactor: :fire: unused avatax-mock-factory functions * feat: :sparkles: use discount utils in all providers * feat: :sparkles: differentiate between pricesEnteredWithTax in taxjar
2023-05-29 08:35:34 +00:00
this.logger.debug({ response }, "fulfillOrder response:");
feat: finalize order process (#355) * feat: :sparkles: add dummy order-created * refactor: :fire: unused private-providers-configuration-service * feat: :sparkles: add dummy order-fulfilled * refactor: :truck: move provider-config * refactor: :truck: crudSettingsConfigurator -> crudSettingsManager * refactor: :recycle: [tax-provider].ts -> [tax-provider]-webhook.service.ts * feat: :sparkles: add dummy createOrder * refactor: :recycle: distinguish between salesOrder and salesInvoice in avatax * refactor: :truck: [provider]-calculate.ts to [provider]-transform.ts * refactor: :truck: ResponseTaxPayload to tax-provider-webhook.ts * refactor: :truck: ResponseTaxPayload -> CalculateTaxesResponse * refactor: :recycle: webhooks with active-tax-provider.service.ts * feat: :sparkles: add skeleton orderCreate functionality * refactor: :recycle: [provider]-transform.ts -> [provider]-[webhook]-transform.ts * feat: :sparkles: add order-fulfilled with avatax call * refactor: :recycle: move getActiveTaxProvider to active-tax-provider * refactor: :label: export types for [provider]-client function args * refactor: :truck: UpdateAppMetadata -> UpdateMetadata * feat: :sparkles: fulfill order with id from metadata * build: :arrow_up: upgrade avatax * feat: :sparkles: commit transaction on fulfill in avatax * fix: :bug: return of webhooks to ensure valid retry behavior * refactor: :truck: [provider]-[webhook]-transform -> [provider]-[webhook]-map * refactor: :label: export types of avatax-calculate-taxes mapPayload * refactor: :recycle: extract address-map to separate function * refactor: :recycle: remove schema.ts * refactor: :recycle: move addressSchema to channels-config.ts * feat: :sparkles: add tests & placeholder tests for avatax & taxjar maps * refactor: :recycle: throw error if no metadata * refactor: :recycle: change EXTERNAL_ID_KEY to PROVIDER_ORDER_ID_KEY add comments * refactor: :recycle: comments -> it.todo in tests * refactor: :bulb: add comment about shipping_item_code * refactor: :white_check_mark: add todo items for tests * refactor: :recycle: remove export and add sumLines to taxJarOrderCreated * refactor: :recycle: address-map with avatarAddressFactory * docs: :bulb: add comment about MOCKED_SALEOR_PAYLOAD * refactor: :recycle: remove export of mapLines and add to avataxCalculateTaxes * style: :art: add newline-after-var warn to eslint-config-saleor * style: :art: autofix newline-after-var in taxes * test: :white_check_mark: restructure tests according to new naming in address-map * refactor: :recycle: add shippingItemCode to avataxCalculateTaxes wrapper object * refactor: :truck: payloadProps -> payloadArgs * refactor: :recycle: add Maps suffix to map wrapper objects * refactor: :recycle: remove data: null from ActiveTaxProviderResult * refactor: :recycle: maintain the object hierarchy in tests * refactor: :recycle: refactor webhook responses with WebhookResponseFactory * build: :arrow_up: vitest * test: :white_check_mark: add tests for get-app-config-test * test: :white_check_mark: add tests for getActiveTaxProvider * refactor: :recycle: use address fragment for taxBase and order * refactor: :recycle: rename WebhookResponseFactory -> WebhookResponse * style: :construction_worker: add multiline-comment-style * fix: :bug: dummy test in get-app-config.test.ts * refactor: :recycle: rename AddressFragment -> Address * refactor: :recycle: use debug instead of error in webhook-response noRetry * refactor: :recycle: refactor as variables in mutation * build: :construction_worker: add changeset * refactor: :recycle: split changesets in two * build: :arrow_up: vite * build: :arrow_up: vite && vitest in all apps
2023-04-17 11:58:21 +00:00
refactor: refine taxjar (#494) * feat: :white_check_mark: add first tests & use address-factory * feat: :sparkles: add distributeDiscount * refactor: taxjar maps to adapters (#495) * refactor: :recycle: taxjar-calculate-taxes-map with taxjar-calculate-taxes-adapter * refactor: :recycle: taxjar-order-created-map -> taxjar-order-created-adapter * refactor: :recycle: address 1st batch of feedback * refactor: :recycle: split up taxjar-calculate-taxes-adapter * refactor: :truck: extract shipping transformer * docs: :bulb: add comment about refunds in distribute-discount * refactor: :truck: split up taxjar-order-created-adapter classes * refactor: :recycle: mocks with taxjar-mock-factory * refactor: :recycle: mocks with avatax-mock-factory * refactor: avatax maps to adapters (#506) * refactor: :recycle: move around & refactor avatax-order-created-map -> adapter * refactor: :truck: move avatax-order-created- to its own folder * refactor: :recycle: avatax-calculate-taxes-map -> adapter * refactor: :recycle: avatax-order-fulfilled-maps -> adapter * feat: :sparkles: add logger to adapters * refactor: :recycle: mocks -> avatax-mock-transaction-factory & fix tests * feat: add tests for taxjar (#509) * fix: :truck: tax-provider-utils.test name * feat: :white_check_mark: add nexus tests & other taxjar tests * feat: :goal_net: add ExpectedError and use it in webhook-response * refactor: :white_check_mark: unify taxjar-calculate-taxes tests with mock-generator * feat: :white_check_mark: add TaxJarOrderCreatedMockGenerator * feat: :white_check_mark: add avatax-calculate-taxes-mock-generator * feat: :white_check_mark: add AvataxOrderCreatedMockGenerator * refactor: :fire: tax-mock-factory * fix: :bug: housekeeping * fix: :bug: feedback * feat: :white_check_mark: add taxBase with discounts test * fix: :bug: address feedback * refactor: :fire: unused avatax-mock-factory functions * feat: :sparkles: use discount utils in all providers * feat: :sparkles: differentiate between pricesEnteredWithTax in taxjar
2023-05-29 08:35:34 +00:00
return response;
feat: finalize order process (#355) * feat: :sparkles: add dummy order-created * refactor: :fire: unused private-providers-configuration-service * feat: :sparkles: add dummy order-fulfilled * refactor: :truck: move provider-config * refactor: :truck: crudSettingsConfigurator -> crudSettingsManager * refactor: :recycle: [tax-provider].ts -> [tax-provider]-webhook.service.ts * feat: :sparkles: add dummy createOrder * refactor: :recycle: distinguish between salesOrder and salesInvoice in avatax * refactor: :truck: [provider]-calculate.ts to [provider]-transform.ts * refactor: :truck: ResponseTaxPayload to tax-provider-webhook.ts * refactor: :truck: ResponseTaxPayload -> CalculateTaxesResponse * refactor: :recycle: webhooks with active-tax-provider.service.ts * feat: :sparkles: add skeleton orderCreate functionality * refactor: :recycle: [provider]-transform.ts -> [provider]-[webhook]-transform.ts * feat: :sparkles: add order-fulfilled with avatax call * refactor: :recycle: move getActiveTaxProvider to active-tax-provider * refactor: :label: export types for [provider]-client function args * refactor: :truck: UpdateAppMetadata -> UpdateMetadata * feat: :sparkles: fulfill order with id from metadata * build: :arrow_up: upgrade avatax * feat: :sparkles: commit transaction on fulfill in avatax * fix: :bug: return of webhooks to ensure valid retry behavior * refactor: :truck: [provider]-[webhook]-transform -> [provider]-[webhook]-map * refactor: :label: export types of avatax-calculate-taxes mapPayload * refactor: :recycle: extract address-map to separate function * refactor: :recycle: remove schema.ts * refactor: :recycle: move addressSchema to channels-config.ts * feat: :sparkles: add tests & placeholder tests for avatax & taxjar maps * refactor: :recycle: throw error if no metadata * refactor: :recycle: change EXTERNAL_ID_KEY to PROVIDER_ORDER_ID_KEY add comments * refactor: :recycle: comments -> it.todo in tests * refactor: :bulb: add comment about shipping_item_code * refactor: :white_check_mark: add todo items for tests * refactor: :recycle: remove export and add sumLines to taxJarOrderCreated * refactor: :recycle: address-map with avatarAddressFactory * docs: :bulb: add comment about MOCKED_SALEOR_PAYLOAD * refactor: :recycle: remove export of mapLines and add to avataxCalculateTaxes * style: :art: add newline-after-var warn to eslint-config-saleor * style: :art: autofix newline-after-var in taxes * test: :white_check_mark: restructure tests according to new naming in address-map * refactor: :recycle: add shippingItemCode to avataxCalculateTaxes wrapper object * refactor: :truck: payloadProps -> payloadArgs * refactor: :recycle: add Maps suffix to map wrapper objects * refactor: :recycle: remove data: null from ActiveTaxProviderResult * refactor: :recycle: maintain the object hierarchy in tests * refactor: :recycle: refactor webhook responses with WebhookResponseFactory * build: :arrow_up: vitest * test: :white_check_mark: add tests for get-app-config-test * test: :white_check_mark: add tests for getActiveTaxProvider * refactor: :recycle: use address fragment for taxBase and order * refactor: :recycle: rename WebhookResponseFactory -> WebhookResponse * style: :construction_worker: add multiline-comment-style * fix: :bug: dummy test in get-app-config.test.ts * refactor: :recycle: rename AddressFragment -> Address * refactor: :recycle: use debug instead of error in webhook-response noRetry * refactor: :recycle: refactor as variables in mutation * build: :construction_worker: add changeset * refactor: :recycle: split changesets in two * build: :arrow_up: vite * build: :arrow_up: vite && vitest in all apps
2023-04-17 11:58:21 +00:00
}
}