M
M
Marro4202020-11-05 01:37:18
Node.js
Marro420, 2020-11-05 01:37:18

How to abort a request in mongoose?

I have a telegram bot through which I can communicate with users from the mongoose database, a connection with the user occurs if I first enter his chat.id, but I can’t terminate the connection, how to implement this?

bot.on('message', msg => {
         
        //chatId который пишет боту
        const chatId = msg.chat.id
        // мой chatId
        const myId = 1396346856
         
        if(chatId === myId  ){
            /*если сообщение которое я ввел равно chatId пользователя из базы данных, то следующие сообщения будут отправляться этому пользователю*/ 
            Person
            .findOne({chat : msg.text })
            .then(person => {
               let userId = msg.text 
                
                bot.sendMessage(chatId, 'Соединение установлено')    
                bot.on('message', msg => {
                bot.sendMessage(userId, msg.text)
               })
               
            })    
            .catch()   
        } 
        // если это чат пользователя то его сообщения отправляются в мой чат с ботом
        else{
            bot.sendMessage(matId,msg.text)
        }
    })

Answer the question

In order to leave comments, you need to log in

1 answer(s)
R
Roman, 2020-11-05
@Marro420

// мой chatId (я админ)
const myId = 1396346856;
// chatId собеседника
let currentInterlocutorId;

bot.on('message', msg => {
    //chatId который пишет боту
    const chatId = msg.chat.id

    // если сообщение от меня (хозяина бота)
    if (chatId === myId) {
        // не будем мучать БД при каждом моем сообщении поэтому сначала проверим, похоже ли то что я написал на ID пользователя
        if (/^\d+$/.test(msg.text)) {

            /*если сообщение которое я ввел равно chatId пользователя из базы данных, то следующие сообщения будут отправляться этому пользователю*/
            Person
                .findOne({ chat: msg.text })
                .then(person => {
                    currentInterlocutorId = msg.text;
                    bot.sendMessage(mayId, 'Соединение установлено')
                })
                .catch()
        }

        // если я (хозяина бота) ввел "stop" общение прекращаем
        if (msg.text === "stop") {
            bot.sendMessage(mayId, 'Соединение разорвано');
            bot.sendMessage(currentInterlocutorId, 'Я от тебя устал, не пиши мне больше!!!');
            currentInterlocutorId = undefined;
        }

    }

    // если собеседник был выбран
    if (currentInterlocutorId) {
        // если пишу я
        if (chatId === myId) {
            bot.sendMessage(currentInterlocutorId, msg.text)
        }
        // если выбранный собеседник пишет мне
        else if (chatId === currentInterlocutorId) {
            bot.sendMessage(mayId, msg.text)
        }

    }


})

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question