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/mail/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/zikryat/public_html/src/api/mail/mail.emitter.service.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 {BadRequestException, Injectable, Logger} from "@nestjs/common";
import date from "date-and-time";
import {EventEmitter2} from "@nestjs/event-emitter";
import {IUser} from "../user_modules/user/entities/user.entity";
import {MailType} from "../../core/utils/enums";
import {SendMailEvent} from "../../core/utils/interfaceces";
import {i18nApi} from "../../core/utils/res.helpers";

@Injectable()
export class MailEmitterService {
    constructor(
        private readonly eventEmitter: EventEmitter2,
    ) {
    }

    async sendConfirmEmail(user: IUser, mailType: MailType, isDev: boolean) {
        let code = Math.floor(100000 + Math.random() * 900000);
        if (isDev) {
            return code
        }
        if (user.lastMail && user.lastMail.sendAt) {
            let min = parseInt(date.subtract(new Date(), user.lastMail.sendAt).toMinutes().toString(), 10);
            if (min < 2) {
                throw new BadRequestException(i18nApi.wait2MinutesToSendMail);
            }
        }

        let x = new SendMailEvent();
        x.code = code.toString();
        x.user = user;
        x.mailType = mailType;
        this.eventEmitter.emit("send.mail", x);
        return code;
    }
}

NineSec Team - 2022