From 470c5b512b453e8a3d6352fa52f359d71fc4d32a Mon Sep 17 00:00:00 2001 From: totanvix Date: Wed, 28 Jun 2023 14:01:56 +0700 Subject: [PATCH] refactor: handle numbers of channel --- utils/bot/bot.go | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/utils/bot/bot.go b/utils/bot/bot.go index 8371548..7259c49 100644 --- a/utils/bot/bot.go +++ b/utils/bot/bot.go @@ -28,9 +28,10 @@ type rChannel struct { err error } -func NewBot(hookData structs.HookData) *Bot { - ch := make(chan rChannel, 2) +const numberOfCh = 2 +func NewBot(hookData structs.HookData) *Bot { + ch := make(chan rChannel, numberOfCh) return &Bot{HookData: hookData, rCh: ch} } @@ -44,16 +45,20 @@ func (b Bot) ResolveHook() error { go b.resolveCallbackCommand() } - for { + for i := 0; i < numberOfCh; i++ { select { - case r, ok := <-b.rCh: - if !ok || r.err != nil { + case r := <-b.rCh: + if r.err != nil { return r.err } case <-time.After(10 * time.Second): return errors.New("Timeout") } } + + close(b.rCh) + + return nil } func (b Bot) setTypingAction() { @@ -87,7 +92,6 @@ func (b Bot) resolveCommand() error { defer func() { b.rCh <- rChannel{err: err} - close(b.rCh) }() data := b.getTelegramData()