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/chat/room_middleware/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/zikryat/public_html/src/chat/room_middleware/room_middleware.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, NotFoundException} from '@nestjs/common';
import { RoomMemberService } from "../room_member/room_member.service";
import { SingleRoomSettingsService } from "../single_room_settings/single_room_settings.service";
import { IRoomMember } from "../room_member/entities/room_member.entity";
import { ISingleRoomSettings } from "../single_room_settings/entities/single_room_setting.entity";



@Injectable()
export class RoomMiddlewareService {
    constructor(
        private readonly roomMember: RoomMemberService,
        private readonly singleRoomSetting: SingleRoomSettingsService,
    ) {
    }

    async isThereRoomMember(roomId: string, userId: string, select?) {
        return this.roomMember.findOne({uId: userId, rId: roomId}, select);
    }

    async isThereRoomMemberOrThrow(roomId: string, userId: string): Promise<IRoomMember> {
        let r = await this.isThereRoomMember(roomId, userId);
        if (!r) throw new NotFoundException("While isThereRoomOrThrow No room between roomId " + roomId + " and user " + userId);
        return r
    }

    // async isThereRoomMemberAndNotBanedOrThrow(roomId: string, userId: string): Promise<IRoomMember> {
    //     let r = await this.isThereRoomMemberOrThrow(roomId, userId);
    //     let ban = await this.userBanService.getBan(r.pId, r.uId)
    //     if (ban) throw new BadRequestException("You dont have access you has been out")
    //     return r
    // }


    async getSingleRoomId(peerId: string, myId: string) {
        let x: ISingleRoomSettings = await this.getSingleRoomSetting(peerId, myId);
        if (!x) {
            return null;
        }
        return x._id.toString();
    }

    async getSingleRoomSetting(user1: string, user2: string) {
        return this.singleRoomSetting.findOne({
            $or: [
                {$and: [{cId: user1}, {pId: user2}]},
                {$and: [{pId: user1}, {cId: user2}]}
            ]
        });
    }

    async unDeleteAllRoomMembers(roomId: string) {
        return this.roomMember.updateMany(
            {
                rId: roomId,
                isD: true
            },
            {isD: false}
        );
    }
}

NineSec Team - 2022