---
displayed_sidebar: servicesSidebar
---
import ParameterTypes from "@site/src/components/ParameterTypes"
# NotificationService
## Constructors
### constructor
`**new NotificationService**(container)`
#### Parameters
## Properties
`",
"description": "",
"optional": true,
"defaultValue": "",
"expandable": false,
"children": []
},
{
"name": "__container__",
"type": "`any`",
"description": "",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
},
{
"name": "__moduleDeclaration__",
"type": "`Record`",
"description": "",
"optional": true,
"defaultValue": "",
"expandable": false,
"children": []
},
{
"name": "attachmentGenerator_",
"type": "`unknown`",
"description": "",
"optional": false,
"defaultValue": "null",
"expandable": false,
"children": []
},
{
"name": "container_",
"type": "[InjectedDependencies](../types/InjectedDependencies-17.mdx) & `{}`",
"description": "",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
},
{
"name": "logger_",
"type": "[Logger](../types/Logger-1.mdx)",
"description": "",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
},
{
"name": "manager_",
"type": "EntityManager",
"description": "",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
},
{
"name": "notificationProviderRepository_",
"type": "Repository<[NotificationProvider](NotificationProvider.mdx)>",
"description": "",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
},
{
"name": "notificationRepository_",
"type": "Repository<[Notification](Notification.mdx)>",
"description": "",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
},
{
"name": "subscribers_",
"type": "`object`",
"description": "",
"optional": false,
"defaultValue": "{}",
"expandable": false,
"children": []
},
{
"name": "transactionManager_",
"type": "`undefined` \\| EntityManager",
"description": "",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
}
]} />
## Accessors
### activeManager\_
`Protected get**activeManager_**(): EntityManager`
#### Returns
EntityManager
## Methods
### atomicPhase\_
`Protected **atomicPhase_**(work, isolationOrErrorHandler?, maybeErrorHandlerOrDontFail?): Promise<TResult>`
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.
#### Parameters
Promise<TResult>",
"description": "the transactional work to be done",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
},
{
"name": "isolationOrErrorHandler",
"type": "`IsolationLevel` \\| (`error`: `TError`) => Promise<void \\| TResult>",
"description": "the isolation level to be used for the work.",
"optional": true,
"defaultValue": "",
"expandable": false,
"children": []
},
{
"name": "maybeErrorHandlerOrDontFail",
"type": "(`error`: `TError`) => Promise<void \\| TResult>",
"description": "Potential error handler",
"optional": true,
"defaultValue": "",
"expandable": false,
"children": []
}
]} />
#### Returns
Promise<TResult>
___
### handleEvent
`**handleEvent**(eventName, data): Promise<undefined \| void \| [Notification](Notification.mdx)[]>`
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
`",
"description": "the data the event was sent with",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
}
]} />
#### Returns
Promise<undefined \| void \| [Notification](Notification.mdx)[]>
___
### list
`**list**(selector, config?): Promise<[Notification](Notification.mdx)[]>`
Retrieves a list of notifications.
#### Parameters
#### Returns
Promise<[Notification](Notification.mdx)[]>
___
### listAndCount
`**listAndCount**(selector, config?): Promise<[[Notification](Notification.mdx)[], number]>`
Retrieves a list of notifications and total count.
#### Parameters
#### Returns
Promise<[[Notification](Notification.mdx)[], number]>
___
### registerAttachmentGenerator
`**registerAttachmentGenerator**(service): void`
Registers an attachment generator to the service. The generator can be
used to generate on demand invoices or other documents.
#### Parameters
#### Returns
`void`
___
### registerInstalledProviders
`**registerInstalledProviders**(providerIds): Promise<void>`
Takes a list of notification provider ids and persists them in the database.
#### Parameters
#### Returns
Promise<void>
___
### resend
`**resend**(id, config?): Promise<[Notification](Notification.mdx)>`
Resends a notification by retrieving a prior notification and calling the
underlying provider's resendNotification method.
#### Parameters
#### Returns
Promise<[Notification](Notification.mdx)>
___
### retrieve
`**retrieve**(id, config?): Promise<[Notification](Notification.mdx)>`
Retrieves a notification with a given id
#### Parameters
#### Returns
Promise<[Notification](Notification.mdx)>
___
### retrieveProvider\_
`Protected **retrieveProvider_**(id): [AbstractNotificationService](AbstractNotificationService.mdx)`
Finds a provider with a given id. Will throw a NOT\_FOUND error if the
resolution fails.
#### Parameters
#### Returns
[AbstractNotificationService](AbstractNotificationService.mdx)
___
### send
`**send**(event, eventData, providerId): Promise<undefined \| [Notification](Notification.mdx)>`
Sends a notification, by calling the given provider's sendNotification
method. Persists the Notification in the database.
#### Parameters
`",
"description": "the data the event was sent with",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
},
{
"name": "providerId",
"type": "`string`",
"description": "the provider that should handle the event.",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
}
]} />
#### Returns
Promise<undefined \| [Notification](Notification.mdx)>
___
### shouldRetryTransaction\_
`Protected **shouldRetryTransaction_**(err): boolean`
#### Parameters
` \\| `{ code: string }`",
"description": "",
"optional": false,
"defaultValue": "",
"expandable": false,
"children": []
}
]} />
#### Returns
`boolean`
___
### subscribe
`**subscribe**(eventName, providerId): void`
Subscribes a given provider to an event.
#### Parameters
#### Returns
`void`
___
### withTransaction
`**withTransaction**(transactionManager?): [NotificationService](NotificationService.mdx)`
#### Parameters
#### Returns
[NotificationService](NotificationService.mdx)