Naltox / telegram-node-bot

Node module for creating Telegram bots.
MIT License
721 stars 143 forks source link

Before filter controller support break next performance handlers #157

Open Orel2888 opened 7 years ago

Orel2888 commented 7 years ago
// Support filter return false 
class PingController extends TelegramBaseController {

    before(scope) {

        return false
    }

    pingHandler($) {
        return $.sendMessage('Pong')
    }

    /**
    * Run if before returned false
    */
    rejected(err, $) {

        return $.sendMessage('Before filter returned false')
    }

    get routes() {
        return {
            'pingCommand': 'pingHandler'
        }
    }
}

// Support filter return {Promise}. Use resolve
class PingController extends TelegramBaseController {

    before(scope) {

        return new Promise((resolve, reject) => {
            scope.someKey = 'data'

            resolve(scope)
        })
    }

    pingHandler($) {
        return $.sendMessage('Pong')
    }

    get routes() {
        return {
            'pingCommand': 'pingHandler'
        }
    }
}

// Support filter return {Promise}. Use reject
class PingController extends TelegramBaseController {

    before(scope) {

        return new Promise((resolve, reject) => {

            reject('Error')
        })
    }

    pingHandler($) {
        return $.sendMessage('Pong')
    }

    /**
    * Catch error from before
    */    
    rejected(err, $) {

        return $.sendMessage('Rejected', err)
    }

    get routes() {
        return {
            'pingCommand': 'pingHandler'
        }
    }
}