@takentrade/takentrade-libs
Version:
TakeNTrade shared libraries
78 lines (77 loc) • 6.95 kB
TypeScript
import { ClientProxy } from '@nestjs/microservices';
import { OTPNotificationChannel } from './notification.enum';
import { AccountFreezeEmailData, AccountStatementEmailData, AccountUnfreezeEmailData, AjoCancellationEmailData, AjoContributionEmailData, AjoInviteEmailData, AjoMembershipUpdateEmailData, ContactMessageEmailData, CreditTransactionMailData, CustomMailSendOptions, DebitTransactionMailData, ElectricityEmailData, InvestmentCancellationEmailData, LoanApprovedEmailData, LoanRepaymentConfirmationEmailData, LoanRepaymentFailedEmailData, NewLoanApplicationEmailData, OTPMailData, PasswordResetMailData, ResetTransactionPinEmailData, AjoContributionConfirmationEmailData, InvestmentConfirmationEmailData, SendPushNotificationInput, BaseEmailData, EducationEmailData, EmailVerificationMailData, DeviceVerificationMailData, NewDeviceNotificationData, SubAccountReportEmailData, BulkEmailData } from './notification.interface';
export declare class NotificationClient {
private readonly natsClient;
constructor(natsClient: ClientProxy);
private validatePhoneNumber;
private validateEmailAddress;
sendSms(to: string, message: string, user_id?: string): Promise<void>;
sendSmsPreference(to: string, message: string, user_id?: string): Promise<void>;
/**
* This utility method sends an OTP message via the SMS channel.
*
* @param to - The recipient phone number
* @param message - The OTP message
* @deprecated
*/
sendSmsOTP(to: string, message: string, user_id?: string): Promise<void>;
sendCustomMail(to: string | string[], options: CustomMailSendOptions & {
user_id?: string;
bypassPreferenceCheck?: boolean;
}): Promise<void>;
sendBulkEmail(data: BulkEmailData): Promise<void>;
sendEmailVerificationMail(to: string | string[], data: EmailVerificationMailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendPasswordResetMail(to: string | string[], data: PasswordResetMailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendCreditTransactionMail(to: string | string[], data: CreditTransactionMailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendDebitTransactionMail(to: string | string[], data: DebitTransactionMailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendAccountFreezeMail(to: string | string[], data: AccountFreezeEmailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendAccountStatementMail(to: string | string[], data: AccountStatementEmailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendAccountUnfreezeMail(to: string | string[], data: AccountUnfreezeEmailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendAdminNewLoanMail(to: string | string[], data: NewLoanApplicationEmailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendAjoCancellationMail(to: string | string[], data: AjoCancellationEmailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendAjoContributionMail(to: string | string[], data: AjoContributionEmailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendAjoInvitationMail(to: string | string[], data: AjoInviteEmailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendAjoMembershipMail(to: string | string[], data: AjoMembershipUpdateEmailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendContactMail(to: string | string[], data: ContactMessageEmailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendForgetPinOTPMail(to: string | string[], data: ResetTransactionPinEmailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendInvestmentCancellationMail(to: string | string[], data: InvestmentCancellationEmailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendLoanApprovedMail(to: string | string[], data: LoanApprovedEmailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendLoanRepaymentFailedMail(to: string | string[], data: LoanRepaymentFailedEmailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendLoanRepaymentSuccessMail(to: string | string[], data: LoanRepaymentConfirmationEmailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendNewAjoMail(to: string | string[], data: AjoContributionConfirmationEmailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendNewInvestmentMail(to: string | string[], data: InvestmentConfirmationEmailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
/**
* Sends an email notification for electricity purchase
* @param to - Recipient's email address
* @param data - Electricity purchase details
*/
sendElectricityPurchaseEmail(to: string | string[], data: Omit<ElectricityEmailData, keyof BaseEmailData>, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
/**
* Sends an email notification for education service purchase
* @param to - Recipient's email address
* @param data - Education service purchase details
*/
sendEducationPurchaseEmail(to: string | string[], data: Omit<EducationEmailData, keyof BaseEmailData>, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendDeviceVerificationEmail(to: string | string[], data: Omit<DeviceVerificationMailData, keyof BaseEmailData>, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendNewDeviceNotificationEmail(to: string | string[], data: Omit<NewDeviceNotificationData, keyof BaseEmailData>, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendNewDeviceNotification(to: string | string[], data: NewDeviceNotificationData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
/**
* Sends a sub-account report email with the provided data
* @param to Recipient email address
* @param data Sub-account report data
*/
sendSubAccountReportEmail(to: string | string[], data: SubAccountReportEmailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
sendWelcomeMail(to: string | string[], data: BaseEmailData, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
/**
* Sends generated OTP to a recipient
* @param to - recipient phone number or email
* @param data - OTP data
* @param channel - OTP notification channel. Defaults to sms.
*/
sendOTP(to: string | string[], data: OTPMailData, channel?: OTPNotificationChannel, user_id?: string, bypassPreferenceCheck?: boolean): Promise<void>;
/**
* Sends push notification
*/
sendPush(input: SendPushNotificationInput): Promise<void>;
}