chore(): Update module provider retrieval error message and type (#10138)

Partially RESOLVES FRMW-2802

**What**
Improve error message and change the error type when retrieving a provider from a local container fail
This commit is contained in:
Adrien de Peretti
2024-11-19 11:19:19 +00:00
committed by GitHub
parent 661ea7865c
commit 7aa990795c
12 changed files with 94 additions and 24 deletions
@@ -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<any>
captureService: ModulesSdkTypes.IMedusaInternalService<any>
@@ -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,25 @@ type InjectedDependencies = {
export default class PaymentProviderService extends ModulesSdkUtils.MedusaInternalService<InjectedDependencies>(
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) {
throw new MedusaError(
MedusaError.Types.NOT_FOUND,
`Could not find a payment provider with id: ${providerId}`
)
const errMessage = `
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)
}
}