Skip to content
This repository has been archived by the owner on Sep 13, 2023. It is now read-only.

Commit

Permalink
Merge pull request #17 from palavrapasse/patch/blocking-telegram-calls
Browse files Browse the repository at this point in the history
patch: blocking telegram calls
  • Loading branch information
rutesantos4 authored Feb 11, 2023
2 parents c1778dc + a2b4687 commit 0a1e51a
Showing 1 changed file with 6 additions and 13 deletions.
19 changes: 6 additions & 13 deletions pkg/telegramwriter.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ type TelegramWriter struct {
chatId string
}

var resultChan = make(chan *http.Response)

func (tw TelegramWriter) Write(p []byte) (n int, err error) {

body, err := json.Marshal(map[string]string{
Expand All @@ -27,25 +25,20 @@ func (tw TelegramWriter) Write(p []byte) (n int, err error) {

url := fmt.Sprintf("https://api.telegram.org/bot%s/sendMessage", tw.botToken)

go asyncPost(url, body, resultChan)

response := <-resultChan
defer func() {
if response != nil && response.Body != nil {
response.Body.Close()
}
}()
go asyncPost(url, body)

return len(p), nil
}

func asyncPost(url string, body []byte, rc chan *http.Response) {
func asyncPost(url string, body []byte) {
response, err := http.Post(url, messageType, bytes.NewBuffer(body))

if err != nil {
rc <- response
return
}

rc <- response
if response.Body != nil {
response.Body.Close()
}

}

0 comments on commit 0a1e51a

Please sign in to comment.