NineSec Team Shell
Server IP : 92.205.26.207  /  Your IP : 216.73.216.16
Web Server : Apache
System : Linux 207.26.205.92.host.secureserver.net 4.18.0-553.60.1.el8_10.x86_64 #1 SMP Thu Jul 10 04:01:16 EDT 2025 x86_64
User : zikryat ( 1002)
PHP Version : 8.3.23
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /home/zikryat/public_html/src/api/profile/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/zikryat/public_html/src/api/profile/profile_notification_emitter.ts
/**
 * Copyright 2023, the hatemragab project author.
 * All rights reserved. Use of this source code is governed by a
 * MIT license that can be found in the LICENSE file.
 */

import {Injectable} from "@nestjs/common";
import {NotificationEmitterService} from "../../common/notification_emitter/notification_emitter.service";
import {UserService} from "../user_modules/user/user.service";
import {UserDeviceService} from "../user_modules/user_device/user_device.service";
import {SendMessageDto} from "../../chat/channel/dto/send.message.dto";
import {PushKeyAndProvider} from "../../core/utils/interfaceces";
import {NotificationType} from "../../core/utils/enums";
import {NotificationData} from "../../common/notification_emitter/notification.event";
import {IUser} from "../user_modules/user/entities/user.entity";

@Injectable()
export class ProfileNotificationEmitter {
    constructor(
        readonly emitterService: NotificationEmitterService,
        private readonly userService: UserService,
        private readonly userDevice: UserDeviceService,
    ) {
    }


    async notify(peerId: string, myUser: IUser) {
        let tokens = new PushKeyAndProvider([], []);
        let devices = await this.userDevice.getUserPushTokens(peerId);
        tokens.fcm = devices.fcm
        tokens.oneSignal = devices.oneSignal

        this.emit({
            data: {
                type: NotificationType.ChatReq,
                fromVChat: "true"
            },
            tag: myUser._id.toString(),
            body: "💬 Chat Request 💬",
            title: myUser.fullName,
            tokens: []
        }, tokens);
    }


    private emit(notificationData: NotificationData, tokens: PushKeyAndProvider) {
        if (tokens.fcm.length != 0) {
            notificationData.tokens = tokens.fcm;
            this.emitterService.fcmSend(notificationData);
        }
        if (tokens.oneSignal.length != 0) {
            notificationData.tokens = tokens.oneSignal;
            this.emitterService.oneSignalSend(notificationData);
        }
    }
}

NineSec Team - 2022