@@ -9,15 +9,17 @@ import { CreateSubscriptionDto } from './dto/create-subscription.dto';
99import { MassNotificationDto } from './dto/mass-notification.dto' ;
1010import webpush , { WebPushError } from 'web-push' ;
1111import admin from 'firebase-admin' ;
12+ import { LoggerService } from '../common/logger/logger.service' ;
1213
1314@Injectable ( )
1415export class NotificationsService {
15- private readonly logger = new Logger ( NotificationsService . name ) ;
16+ // private readonly logger = new Logger(NotificationsService.name);
1617
1718 constructor (
1819 private readonly db : DatabaseService ,
1920 @Inject ( WEB_PUSH ) private readonly webPush : typeof webpush ,
20- @Inject ( FIREBASE_ADMIN ) private readonly firebase : typeof admin
21+ @Inject ( FIREBASE_ADMIN ) private readonly firebase : typeof admin ,
22+ private readonly logger : LoggerService
2123 ) { }
2224
2325 getPublicKey ( ) : string | undefined {
@@ -60,17 +62,17 @@ export class NotificationsService {
6062 }
6163
6264 async sendNotification ( subscription : SubscriptionRecord , notificationPayload : NotificationPayload ) : Promise < void > {
63- this . logger . info ( `Sending notification to subscription ${ subscription . id } (type: ${ subscription . type } )` ) ;
64- this . logger . info ( `Subscription endpoint: ${ subscription . endpoint } ` ) ;
65- this . logger . info ( `Notification payload: ${ JSON . stringify ( notificationPayload ) } ` ) ;
65+ this . logger . info ( `Sending notification to subscription ${ subscription . id } (type: ${ subscription . type } )` ) ;
66+ this . logger . info ( `Subscription endpoint: ${ subscription . endpoint } ` ) ;
67+ this . logger . info ( `Notification payload: ${ JSON . stringify ( notificationPayload ) } ` ) ;
6668
6769 try {
6870 if ( subscription . type === 'web' ) {
69- this . logger . info ( `Processing web push notification for subscription ${ subscription . id } ` ) ;
71+ this . logger . info ( `Processing web push notification for subscription ${ subscription . id } ` ) ;
7072 if ( ! isWebKeys ( subscription . keys ) ) {
7173 throw new Error ( `Invalid keys for web subscription: ${ JSON . stringify ( subscription . keys ) } ` ) ;
7274 }
73- this . logger . info ( `Web push keys are valid for subscription ${ subscription . id } ` ) ;
75+ this . logger . info ( `Web push keys are valid for subscription ${ subscription . id } ` ) ;
7476 await this . webPush . sendNotification (
7577 {
7678 endpoint : subscription . endpoint ,
@@ -81,9 +83,9 @@ export class NotificationsService {
8183 } ,
8284 JSON . stringify ( notificationPayload )
8385 ) ;
84- this . logger . info ( `Web push notification sent successfully for subscription ${ subscription . id } ` ) ;
86+ this . logger . info ( `Web push notification sent successfully for subscription ${ subscription . id } ` ) ;
8587 } else if ( subscription . type === 'fcm' ) {
86- this . logger . info ( `Processing FCM notification for subscription ${ subscription . id } ` ) ;
88+ this . logger . info ( `Processing FCM notification for subscription ${ subscription . id } ` ) ;
8789 if ( ! isFcmKeys ( subscription . keys ) ) {
8890 throw new Error ( `Invalid keys for FCM subscription: ${ JSON . stringify ( subscription . keys ) } ` ) ;
8991 }
@@ -113,7 +115,7 @@ export class NotificationsService {
113115 } ,
114116 } ,
115117 } ;
116- this . logger . info ( `FCM message payload: ${ JSON . stringify ( message ) } ` ) ;
118+ this . logger . info ( `FCM message payload: ${ JSON . stringify ( message ) } ` ) ;
117119
118120 const response = await this . firebase . messaging ( ) . send ( message ) ;
119121 this . logger . info (
@@ -134,7 +136,7 @@ export class NotificationsService {
134136 if ( subscription . type === 'web' && error instanceof WebPushError ) {
135137 if ( error . statusCode === 410 ) {
136138 await this . db . subscription . delete ( { where : { id : subscription . id } } ) ;
137- this . logger . info ( `Removed expired web subscription id=${ subscription . id } ` ) ;
139+ this . logger . info ( `Removed expired web subscription id=${ subscription . id } ` ) ;
138140 } else {
139141 this . logger . warn ( `Web push send failed (id=${ subscription . id } ): ${ error . statusCode } ${ error . body } ` ) ;
140142 }
@@ -146,7 +148,7 @@ export class NotificationsService {
146148 error ?. code === 'messaging/registration-token-not-registered'
147149 ) {
148150 await this . db . subscription . delete ( { where : { id : subscription . id } } ) ;
149- this . logger . info ( `Removed invalid FCM subscription id=${ subscription . id } ` ) ;
151+ this . logger . info ( `Removed invalid FCM subscription id=${ subscription . id } ` ) ;
150152 } else {
151153 this . logger . warn ( `FCM send failed (id=${ subscription . id } ): ${ error ?. code || error } ` ) ;
152154 }
@@ -156,11 +158,11 @@ export class NotificationsService {
156158 }
157159
158160 async sendMassNotification ( dto : MassNotificationDto ) {
159- this . logger . info ( `Starting mass notification process` ) ;
160- this . logger . info ( `Mass notification DTO: ${ JSON . stringify ( dto ) } ` ) ;
161+ this . logger . info ( `Starting mass notification process` ) ;
162+ this . logger . info ( `Mass notification DTO: ${ JSON . stringify ( dto ) } ` ) ;
161163
162164 const subscriptions = await this . listSubscriptions ( ) ;
163- this . logger . info ( `Found ${ subscriptions . length } subscriptions in database` ) ;
165+ this . logger . info ( `Found ${ subscriptions . length } subscriptions in database` ) ;
164166 this . logger . info (
165167 `Subscriptions details:` ,
166168 subscriptions . map ( ( sub ) => ( {
@@ -179,7 +181,7 @@ export class NotificationsService {
179181 badge : dto . badge || 'https://new.codebuilder.org/images/logo2.png' ,
180182 } ;
181183
182- this . logger . info ( `Prepared notification payload: ${ JSON . stringify ( payload ) } ` ) ;
184+ this . logger . info ( `Prepared notification payload: ${ JSON . stringify ( payload ) } ` ) ;
183185
184186 try {
185187 const results = await Promise . allSettled ( subscriptions . map ( ( sub ) => this . sendNotification ( sub , payload ) ) ) ;
0 commit comments