From f7c661d153f568fa2f8e9d06c2b01e96b94ba17b Mon Sep 17 00:00:00 2001 From: adrien2p Date: Mon, 18 Nov 2024 11:21:55 +0100 Subject: [PATCH 1/5] chore(): Update module provider retrieval error message and type --- packages/modules/auth/src/services/auth-provider.ts | 9 +++++---- .../fulfillment/src/services/fulfillment-provider.ts | 9 +++++---- .../modules/locking/src/services/locking-provider.ts | 9 +++++---- .../notification/src/services/notification-provider.ts | 9 +++++---- .../modules/payment/src/services/payment-provider.ts | 9 +++++---- 5 files changed, 25 insertions(+), 20 deletions(-) diff --git a/packages/modules/auth/src/services/auth-provider.ts b/packages/modules/auth/src/services/auth-provider.ts index 3c8e39f22085f..7b4210941c9d7 100644 --- a/packages/modules/auth/src/services/auth-provider.ts +++ b/packages/modules/auth/src/services/auth-provider.ts @@ -26,10 +26,11 @@ export default class AuthProviderService { try { return this.dependencies[`${AuthProviderRegistrationPrefix}${providerId}`] } catch (err) { - throw new MedusaError( - MedusaError.Types.NOT_FOUND, - `Could not find a auth provider with id: ${providerId}` - ) + const errMessage = ` + Unable to retreieve the auth provider with id: ${providerId} + Please make sure that the provider is registered in the container and it is configured correctly in your project configuration file. + ` + throw new Error(errMessage) } } diff --git a/packages/modules/fulfillment/src/services/fulfillment-provider.ts b/packages/modules/fulfillment/src/services/fulfillment-provider.ts index 75b4c522fb069..1dc0ac5081afa 100644 --- a/packages/modules/fulfillment/src/services/fulfillment-provider.ts +++ b/packages/modules/fulfillment/src/services/fulfillment-provider.ts @@ -48,10 +48,11 @@ export default class FulfillmentProviderService extends ModulesSdkUtils.MedusaIn try { return this.__container__[`fp_${providerId}`] } catch (err) { - throw new MedusaError( - MedusaError.Types.NOT_FOUND, - `Could not find a fulfillment provider with id: ${providerId}` - ) + const errMessage = ` + Unable to retreieve the fulfillment provider with id: ${providerId} + Please make sure that the provider is registered in the container and it is configured correctly in your project configuration file. + ` + throw new Error(errMessage) } } diff --git a/packages/modules/locking/src/services/locking-provider.ts b/packages/modules/locking/src/services/locking-provider.ts index eca5769897b27..25a4a96b6233a 100644 --- a/packages/modules/locking/src/services/locking-provider.ts +++ b/packages/modules/locking/src/services/locking-provider.ts @@ -31,10 +31,11 @@ export default class LockingProviderService { `${LockingProviderRegistrationPrefix}${providerId}` ] } catch (err) { - throw new MedusaError( - MedusaError.Types.NOT_FOUND, - `Could not find a locking provider with id: ${providerId}` - ) + const errMessage = ` + Unable to retreieve the locking provider with id: ${providerId} + Please make sure that the provider is registered in the container and it is configured correctly in your project configuration file. + ` + throw new Error(errMessage) } } } diff --git a/packages/modules/notification/src/services/notification-provider.ts b/packages/modules/notification/src/services/notification-provider.ts index 9b08b8b74cb35..a3db14dfdfef5 100644 --- a/packages/modules/notification/src/services/notification-provider.ts +++ b/packages/modules/notification/src/services/notification-provider.ts @@ -45,10 +45,11 @@ export default class NotificationProviderService extends ModulesSdkUtils.MedusaI `${NotificationProviderRegistrationPrefix}${providerId}` ] } catch (err) { - throw new MedusaError( - MedusaError.Types.NOT_FOUND, - `Could not find a notification provider with id: ${providerId}` - ) + const errMessage = ` + Unable to retreieve the notification provider with id: ${providerId} + Please make sure that the provider is registered in the container and it is configured correctly in your project configuration file. + ` + throw new Error(errMessage) } } diff --git a/packages/modules/payment/src/services/payment-provider.ts b/packages/modules/payment/src/services/payment-provider.ts index 919689525d6fa..bc7b6a51d9502 100644 --- a/packages/modules/payment/src/services/payment-provider.ts +++ b/packages/modules/payment/src/services/payment-provider.ts @@ -32,10 +32,11 @@ export default class PaymentProviderService extends ModulesSdkUtils.MedusaIntern try { return this.__container__[providerId] as IPaymentProvider } catch (e) { - throw new MedusaError( - MedusaError.Types.NOT_FOUND, - `Could not find a payment provider with id: ${providerId}` - ) + const errMessage = ` + Unable to retreieve the payment provider with id: ${providerId} + Please make sure that the provider is registered in the container and it is configured correctly in your project configuration file. + ` + throw new Error(errMessage) } } From 4e6e0c0bcb5e245e9452cdbed776ef834705bbdf Mon Sep 17 00:00:00 2001 From: Adrien de Peretti Date: Mon, 18 Nov 2024 11:23:13 +0100 Subject: [PATCH 2/5] Create wet-ears-wonder.md --- .changeset/wet-ears-wonder.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .changeset/wet-ears-wonder.md diff --git a/.changeset/wet-ears-wonder.md b/.changeset/wet-ears-wonder.md new file mode 100644 index 0000000000000..59ecc1d364eb9 --- /dev/null +++ b/.changeset/wet-ears-wonder.md @@ -0,0 +1,9 @@ +--- +"@medusajs/auth": patch +"@medusajs/fulfillment": patch +"@medusajs/locking": patch +"@medusajs/notification": patch +"@medusajs/payment": patch +--- + +chore(): Update module provider retrieval error message and type From 0060fd9e13a7e9504dfd0caaaa473f9b77fed0dd Mon Sep 17 00:00:00 2001 From: adrien2p Date: Mon, 18 Nov 2024 13:30:19 +0100 Subject: [PATCH 3/5] rm unused import --- packages/modules/auth/src/services/auth-provider.ts | 1 - .../modules/notification/src/services/notification-provider.ts | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/modules/auth/src/services/auth-provider.ts b/packages/modules/auth/src/services/auth-provider.ts index 7b4210941c9d7..2f81ed24102bb 100644 --- a/packages/modules/auth/src/services/auth-provider.ts +++ b/packages/modules/auth/src/services/auth-provider.ts @@ -4,7 +4,6 @@ import { AuthIdentityProviderService, AuthTypes, } from "@medusajs/framework/types" -import { MedusaError } from "@medusajs/framework/utils" import { AuthProviderRegistrationPrefix } from "@types" type InjectedDependencies = { diff --git a/packages/modules/notification/src/services/notification-provider.ts b/packages/modules/notification/src/services/notification-provider.ts index a3db14dfdfef5..272ddca7656b2 100644 --- a/packages/modules/notification/src/services/notification-provider.ts +++ b/packages/modules/notification/src/services/notification-provider.ts @@ -3,7 +3,7 @@ import { InferEntityType, NotificationTypes, } from "@medusajs/framework/types" -import { MedusaError, ModulesSdkUtils } from "@medusajs/framework/utils" +import { ModulesSdkUtils } from "@medusajs/framework/utils" import { NotificationProvider } from "@models" import { NotificationProviderRegistrationPrefix } from "@types" From 5c6ac17b2d039e5fab43a05abd387f14ac3ed541 Mon Sep 17 00:00:00 2001 From: adrien2p Date: Mon, 18 Nov 2024 13:57:53 +0100 Subject: [PATCH 4/5] fix integration tests --- .../__tests__/auth-module-service/index.spec.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/modules/auth/integration-tests/__tests__/auth-module-service/index.spec.ts b/packages/modules/auth/integration-tests/__tests__/auth-module-service/index.spec.ts index 26f4759ace9b5..d2b8b5dca0f30 100644 --- a/packages/modules/auth/integration-tests/__tests__/auth-module-service/index.spec.ts +++ b/packages/modules/auth/integration-tests/__tests__/auth-module-service/index.spec.ts @@ -84,7 +84,8 @@ moduleIntegrationTestRunner({ expect(err).toEqual({ success: false, - error: "Could not find a auth provider with id: facebook", + error: + "\n Unable to retreieve the auth provider with id: facebook\n Please make sure that the provider is registered in the container and it is configured correctly in your project configuration file.\n ", }) }) From 8401a76d04e487f1622f0140d27a789dc0da4bd1 Mon Sep 17 00:00:00 2001 From: adrien2p Date: Mon, 18 Nov 2024 16:24:17 +0100 Subject: [PATCH 5/5] log error as well as throwing it --- .../__tests__/auth-module-service/index.spec.ts | 2 +- packages/modules/auth/src/services/auth-module.ts | 2 ++ .../modules/auth/src/services/auth-provider.ts | 9 ++++++++- .../src/services/fulfillment-module-service.ts | 2 ++ .../src/services/fulfillment-provider.ts | 9 ++++++++- .../modules/locking/src/services/locking-module.ts | 2 ++ .../locking/src/services/locking-provider.ts | 14 ++++++++++++-- .../src/services/notification-module-service.ts | 2 ++ .../src/services/notification-provider.ts | 12 +++++++++++- .../modules/payment/src/services/payment-module.ts | 2 ++ .../payment/src/services/payment-provider.ts | 14 +++++++++++++- 11 files changed, 63 insertions(+), 7 deletions(-) diff --git a/packages/modules/auth/integration-tests/__tests__/auth-module-service/index.spec.ts b/packages/modules/auth/integration-tests/__tests__/auth-module-service/index.spec.ts index d2b8b5dca0f30..5f53ed9f1279f 100644 --- a/packages/modules/auth/integration-tests/__tests__/auth-module-service/index.spec.ts +++ b/packages/modules/auth/integration-tests/__tests__/auth-module-service/index.spec.ts @@ -85,7 +85,7 @@ moduleIntegrationTestRunner({ expect(err).toEqual({ success: false, error: - "\n Unable to retreieve the auth provider with id: facebook\n Please make sure that the provider is registered in the container and it is configured correctly in your project configuration file.\n ", + "\n Unable to retrieve the auth provider with id: facebook\n Please make sure that the provider is registered in the container and it is configured correctly in your project configuration file.\n ", }) }) diff --git a/packages/modules/auth/src/services/auth-module.ts b/packages/modules/auth/src/services/auth-module.ts index 1c1b653b4dd75..6a314989e3ec8 100644 --- a/packages/modules/auth/src/services/auth-module.ts +++ b/packages/modules/auth/src/services/auth-module.ts @@ -6,6 +6,7 @@ import { Context, DAL, InternalModuleDeclaration, + Logger, ModuleJoinerConfig, ModulesSdkTypes, } from "@medusajs/framework/types" @@ -24,6 +25,7 @@ type InjectedDependencies = { authIdentityService: ModulesSdkTypes.IMedusaInternalService providerIdentityService: ModulesSdkTypes.IMedusaInternalService authProviderService: AuthProviderService + logger?: Logger } export default class AuthModuleService extends MedusaService<{ diff --git a/packages/modules/auth/src/services/auth-provider.ts b/packages/modules/auth/src/services/auth-provider.ts index 2f81ed24102bb..193d9f412f7c5 100644 --- a/packages/modules/auth/src/services/auth-provider.ts +++ b/packages/modules/auth/src/services/auth-provider.ts @@ -3,6 +3,7 @@ import { AuthenticationResponse, AuthIdentityProviderService, AuthTypes, + Logger, } from "@medusajs/framework/types" import { AuthProviderRegistrationPrefix } from "@types" @@ -10,13 +11,18 @@ type InjectedDependencies = { [ key: `${typeof AuthProviderRegistrationPrefix}${string}` ]: AuthTypes.IAuthProvider + logger?: Logger } export default class AuthProviderService { protected dependencies: InjectedDependencies + #logger: Logger constructor(container: InjectedDependencies) { this.dependencies = container + this.#logger = container["logger"] + ? container.logger + : (console as unknown as Logger) } protected retrieveProviderRegistration( @@ -26,9 +32,10 @@ export default class AuthProviderService { return this.dependencies[`${AuthProviderRegistrationPrefix}${providerId}`] } catch (err) { const errMessage = ` - Unable to retreieve the auth provider with id: ${providerId} + Unable to retrieve the auth provider with id: ${providerId} Please make sure that the provider is registered in the container and it is configured correctly in your project configuration file. ` + this.#logger.error(errMessage) throw new Error(errMessage) } } diff --git a/packages/modules/fulfillment/src/services/fulfillment-module-service.ts b/packages/modules/fulfillment/src/services/fulfillment-module-service.ts index 5fe4f9ecfd749..486ecf19e663b 100644 --- a/packages/modules/fulfillment/src/services/fulfillment-module-service.ts +++ b/packages/modules/fulfillment/src/services/fulfillment-module-service.ts @@ -7,6 +7,7 @@ import { FulfillmentTypes, IFulfillmentModuleService, InternalModuleDeclaration, + Logger, ModuleJoinerConfig, ModulesSdkTypes, ShippingOptionDTO, @@ -76,6 +77,7 @@ type InjectedDependencies = { shippingOptionTypeService: ModulesSdkTypes.IMedusaInternalService fulfillmentProviderService: FulfillmentProviderService fulfillmentService: ModulesSdkTypes.IMedusaInternalService + logger?: Logger } export default class FulfillmentModuleService diff --git a/packages/modules/fulfillment/src/services/fulfillment-provider.ts b/packages/modules/fulfillment/src/services/fulfillment-provider.ts index 1dc0ac5081afa..ca926f66d58dd 100644 --- a/packages/modules/fulfillment/src/services/fulfillment-provider.ts +++ b/packages/modules/fulfillment/src/services/fulfillment-provider.ts @@ -3,6 +3,7 @@ import { DAL, FulfillmentTypes, IFulfillmentProvider, + Logger, } from "@medusajs/framework/types" import { MedusaError, @@ -12,6 +13,7 @@ import { import { FulfillmentProvider } from "@models" type InjectedDependencies = { + logger?: Logger fulfillmentProviderRepository: DAL.RepositoryService [key: `fp_${string}`]: FulfillmentTypes.IFulfillmentProvider } @@ -22,11 +24,15 @@ export default class FulfillmentProviderService extends ModulesSdkUtils.MedusaIn FulfillmentProvider ) { protected readonly fulfillmentProviderRepository_: DAL.RepositoryService + #logger: Logger constructor(container: InjectedDependencies) { super(container) this.fulfillmentProviderRepository_ = container.fulfillmentProviderRepository + this.#logger = container["logger"] + ? container.logger + : (console as unknown as Logger) } static getRegistrationIdentifier( @@ -49,9 +55,10 @@ export default class FulfillmentProviderService extends ModulesSdkUtils.MedusaIn return this.__container__[`fp_${providerId}`] } catch (err) { const errMessage = ` - Unable to retreieve the fulfillment provider with id: ${providerId} + Unable to retrieve the fulfillment provider with id: ${providerId} Please make sure that the provider is registered in the container and it is configured correctly in your project configuration file. ` + this.#logger.error(errMessage) throw new Error(errMessage) } } diff --git a/packages/modules/locking/src/services/locking-module.ts b/packages/modules/locking/src/services/locking-module.ts index 6945da85495e0..fd55a58347965 100644 --- a/packages/modules/locking/src/services/locking-module.ts +++ b/packages/modules/locking/src/services/locking-module.ts @@ -2,6 +2,7 @@ import { Context, ILockingModule, InternalModuleDeclaration, + Logger, } from "@medusajs/types" import { EntityManager } from "@mikro-orm/core" import { LockingDefaultProvider } from "@types" @@ -10,6 +11,7 @@ import LockingProviderService from "./locking-provider" type InjectedDependencies = { manager: EntityManager lockingProviderService: LockingProviderService + logger?: Logger [LockingDefaultProvider]: string } diff --git a/packages/modules/locking/src/services/locking-provider.ts b/packages/modules/locking/src/services/locking-provider.ts index 25a4a96b6233a..d876a51ffe792 100644 --- a/packages/modules/locking/src/services/locking-provider.ts +++ b/packages/modules/locking/src/services/locking-provider.ts @@ -1,16 +1,25 @@ -import { Constructor, ILockingProvider } from "@medusajs/framework/types" +import { + Constructor, + ILockingProvider, + Logger, +} from "@medusajs/framework/types" import { MedusaError } from "@medusajs/framework/utils" import { LockingProviderRegistrationPrefix } from "../types" type InjectedDependencies = { [key: `lp_${string}`]: ILockingProvider + logger?: Logger } export default class LockingProviderService { protected __container__: InjectedDependencies + #logger: Logger constructor(container: InjectedDependencies) { this.__container__ = container + this.#logger = container["logger"] + ? container.logger + : (console as unknown as Logger) } static getRegistrationIdentifier( @@ -32,9 +41,10 @@ export default class LockingProviderService { ] } catch (err) { const errMessage = ` - Unable to retreieve the locking provider with id: ${providerId} + Unable to retrieve the locking provider with id: ${providerId} Please make sure that the provider is registered in the container and it is configured correctly in your project configuration file. ` + this.#logger.error(errMessage) throw new Error(errMessage) } } diff --git a/packages/modules/notification/src/services/notification-module-service.ts b/packages/modules/notification/src/services/notification-module-service.ts index f40550559351b..75ee656da70ee 100644 --- a/packages/modules/notification/src/services/notification-module-service.ts +++ b/packages/modules/notification/src/services/notification-module-service.ts @@ -4,6 +4,7 @@ import { InferEntityType, INotificationModuleService, InternalModuleDeclaration, + Logger, ModulesSdkTypes, NotificationTypes, } from "@medusajs/framework/types" @@ -22,6 +23,7 @@ import { eventBuilders } from "@utils" import NotificationProviderService from "./notification-provider" type InjectedDependencies = { + logger?: Logger baseRepository: DAL.RepositoryService notificationService: ModulesSdkTypes.IMedusaInternalService< typeof Notification diff --git a/packages/modules/notification/src/services/notification-provider.ts b/packages/modules/notification/src/services/notification-provider.ts index 272ddca7656b2..adb07b7904a5d 100644 --- a/packages/modules/notification/src/services/notification-provider.ts +++ b/packages/modules/notification/src/services/notification-provider.ts @@ -1,6 +1,7 @@ import { DAL, InferEntityType, + Logger, NotificationTypes, } from "@medusajs/framework/types" import { ModulesSdkUtils } from "@medusajs/framework/utils" @@ -8,6 +9,7 @@ import { NotificationProvider } from "@models" import { NotificationProviderRegistrationPrefix } from "@types" type InjectedDependencies = { + logger?: Logger notificationProviderRepository: DAL.RepositoryService< InferEntityType > @@ -25,7 +27,11 @@ export default class NotificationProviderService extends ModulesSdkUtils.MedusaI protected readonly notificationProviderRepository_: DAL.RepositoryService< InferEntityType > + // We can store the providers in a memory since they can only be registered on startup and not changed during runtime + + #logger: Logger + protected providersCache: Map< string, InferEntityType @@ -35,6 +41,9 @@ export default class NotificationProviderService extends ModulesSdkUtils.MedusaI super(container) this.notificationProviderRepository_ = container.notificationProviderRepository + this.#logger = container["logger"] + ? container.logger + : (console as unknown as Logger) } protected retrieveProviderRegistration( @@ -46,9 +55,10 @@ export default class NotificationProviderService extends ModulesSdkUtils.MedusaI ] } catch (err) { const errMessage = ` - Unable to retreieve the notification provider with id: ${providerId} + Unable to retrieve the notification provider with id: ${providerId} Please make sure that the provider is registered in the container and it is configured correctly in your project configuration file. ` + this.#logger.error(errMessage) throw new Error(errMessage) } } diff --git a/packages/modules/payment/src/services/payment-module.ts b/packages/modules/payment/src/services/payment-module.ts index d27487f45c9e6..ea082da8fbc10 100644 --- a/packages/modules/payment/src/services/payment-module.ts +++ b/packages/modules/payment/src/services/payment-module.ts @@ -13,6 +13,7 @@ import { FindConfig, InternalModuleDeclaration, IPaymentModuleService, + Logger, ModuleJoinerConfig, ModulesSdkTypes, PaymentCollectionDTO, @@ -54,6 +55,7 @@ import { joinerConfig } from "../joiner-config" import PaymentProviderService from "./payment-provider" type InjectedDependencies = { + logger?: Logger baseRepository: DAL.RepositoryService paymentService: ModulesSdkTypes.IMedusaInternalService captureService: ModulesSdkTypes.IMedusaInternalService diff --git a/packages/modules/payment/src/services/payment-provider.ts b/packages/modules/payment/src/services/payment-provider.ts index bc7b6a51d9502..3fbccb504176d 100644 --- a/packages/modules/payment/src/services/payment-provider.ts +++ b/packages/modules/payment/src/services/payment-provider.ts @@ -3,6 +3,7 @@ import { CreatePaymentProviderSession, DAL, IPaymentProvider, + Logger, PaymentProviderAuthorizeResponse, PaymentProviderDataInput, PaymentProviderError, @@ -21,6 +22,7 @@ import { PaymentProvider } from "@models" import { EOL } from "os" type InjectedDependencies = { + logger?: Logger paymentProviderRepository: DAL.RepositoryService [key: `pp_${string}`]: IPaymentProvider } @@ -28,14 +30,24 @@ type InjectedDependencies = { export default class PaymentProviderService extends ModulesSdkUtils.MedusaInternalService( PaymentProvider ) { + #logger: Logger + + constructor(container: InjectedDependencies) { + super(container) + this.#logger = container["logger"] + ? container.logger + : (console as unknown as Logger) + } + retrieveProvider(providerId: string): IPaymentProvider { try { return this.__container__[providerId] as IPaymentProvider } catch (e) { const errMessage = ` - Unable to retreieve the payment provider with id: ${providerId} + Unable to retrieve the payment provider with id: ${providerId} Please make sure that the provider is registered in the container and it is configured correctly in your project configuration file. ` + this.#logger.error(errMessage) throw new Error(errMessage) } }