NotificationService
constructor
Parameters
containerInjectedDependenciesRequiredProperties
__container__anyRequiredattachmentGenerator_unknownRequiredDefault: null
container_InjectedDependencies & objectRequiredmanager_EntityManagerRequiredsubscribers_objectRequiredDefault: {}
transactionManager_undefined | EntityManagerRequired__configModule__Record<string, unknown>__moduleDeclaration__Record<string, unknown>Accessors
activeManager_
Returns
EntityManagerEntityManagerRequiredMethods
atomicPhase_
Wraps some work within a transactional block. If the service already has a transaction manager attached this will be reused, otherwise a new transaction manager is created.
Type Parameters
TResultobjectRequiredTErrorobjectRequiredParameters
work(transactionManager: EntityManager) => Promise<TResult>RequiredisolationOrErrorHandlerIsolationLevel | (error: TError) => Promise<void | TResult>maybeErrorHandlerOrDontFail(error: TError) => Promise<void | TResult>Returns
PromisePromise<TResult>RequiredhandleEvent
Handles an event by relaying the event data to the subscribing providers. The result of the notification send will be persisted in the database in order to allow for resends. Will log any errors that are encountered.
Parameters
eventNamestringRequireddataRecord<string, unknown>RequiredReturns
list
Retrieves a list of notifications.
Parameters
Returns
listAndCount
Retrieves a list of notifications and total count.
Parameters
Returns
registerAttachmentGenerator
Registers an attachment generator to the service. The generator can be used to generate on demand invoices or other documents.
Parameters
serviceunknownRequiredReturns
voidvoidRequiredregisterInstalledProviders
Takes a list of notification provider ids and persists them in the database.
Parameters
providerIdsstring[]RequiredReturns
PromisePromise<void>Requiredresend
Resends a notification by retrieving a prior notification and calling the underlying provider's resendNotification method.
Parameters
idstringRequiredDefault: {}
Returns
retrieve
Retrieves a notification with a given id
Parameters
idstringRequiredDefault: {}
Returns
retrieveProvider_
Finds a provider with a given id. Will throw a NOT_FOUND error if the resolution fails.
Parameters
idstringRequiredReturns
AbstractNotificationServiceobjectRequiredsrc/services. The name of the file is the name of the provider
(for example, sendgrid.ts). The file must export a class that extends the AbstractNotificationService class imported from @medusajs/medusa.
For example, create the file src/services/email-sender.ts with the following content:
1import { AbstractNotificationService } from "@medusajs/medusa"2import { EntityManager } from "typeorm"3
4class EmailSenderService extends AbstractNotificationService {5 protected manager_: EntityManager6 protected transactionManager_: EntityManager7
8 sendNotification(9 event: string,10 data: unknown,11 attachmentGenerator: unknown12 ): Promise<{13 to: string;14 status: string;15 data: Record<string, unknown>;16 }> {17 throw new Error("Method not implemented.")18 }19 resendNotification(20 notification: unknown,21 config: unknown,22 attachmentGenerator: unknown23 ): Promise<{24 to: string;25 status: string;26 data: Record<string, unknown>;27 }> {28 throw new Error("Method not implemented.")29 }30
31}32
33export default EmailSenderServiceNotificationProvider entity has 2 properties: identifier and is_installed. The value of the identifier property in the notification provider
class is used when the Notification Provider is created in the database.
The value of this property is also used later when you want to subscribe the Notification Provider to events in a Loader.
For example:
1class EmailSenderService extends AbstractNotificationService {2 static identifier = "email-sender"3 // ...4}send
Sends a notification, by calling the given provider's sendNotification method. Persists the Notification in the database.
Parameters
eventstringRequiredeventDataRecord<string, unknown>RequiredproviderIdstringRequiredReturns
shouldRetryTransaction_
Parameters
errRecord<string, unknown> | objectRequiredReturns
booleanbooleanRequiredsubscribe
Subscribes a given provider to an event.
Parameters
eventNamestringRequiredproviderIdstringRequiredReturns
voidvoidRequiredwithTransaction
Parameters
transactionManagerEntityManagerReturns
thisthisRequired