@sourceloop/ctrl-plane-tenant-management-service
Version:
Tenant Management microservice for SaaS control plane
54 lines (52 loc) • 2.08 kB
text/typescript
import {BindingScope, injectable} from '@loopback/core';
import {NotificationType} from '../../enums';
import {WebhookNotificationServiceType} from '../../types';
/**
* Service for handling notifications.
* This service is responsible for sending notifications using the NotificationProxyService.
* It uses the TemplateService to retrieve and compile the notification templates.
*/
({scope: BindingScope.SINGLETON})
export class NotificationService implements WebhookNotificationServiceType {
/**
* Constructs a new instance of the NotificationService.
* @param {TemplateService} templateService - Service for handling templates.
* @param {NotificationProxyService} notificationProxyService - Service for sending notifications.
*/
constructor() {}
/**
* The `send` function sends an email notification with a given email address,
* notification type, data, and authentication token.
* @param {string} email - The email address of the recipient.
* @param {string} type - The `type` parameter is a string that represents the type
* of email being sent. It is used to determine which template and subject to use
* for the email.
* @param {T} data - The `data` parameter is a generic type `T` which represents
* the data that will be used to populate the email template. It can be any type of
* data, depending on the specific use case.
* @param {string} token - A string representing the authentication token for the
* user sending the email.
* @returns the result of the createNotification api call.
*/
async send<T>(email: string, type: NotificationType, data: T, token: string) {
// implement service here
// const notification = {
// subject: 'subject',
// body: 'body',
// receiver: {
// to: [
// {
// id: email,
// },
// ],
// },
// type: 1,
// sentDate: new Date(),
// options: {
// from: process.env.FROM_EMAIL,
// html: 'body',
// },
// };
// return notification;
}
}