all repos — telegram-bot-api @ 6ce4ec747d6a40615b9100bd2f8c2485a220e970

Golang bindings for the Telegram Bot API

Merge pull request #312 from CNA-Bld/write-to-http-response

Create helper function WriteToHTTPResponse
Kirill Zhuharev zhuharev@users.noreply.github.com
Thu, 19 Mar 2020 07:10:24 +0300
commit

6ce4ec747d6a40615b9100bd2f8c2485a220e970

parent

047d7356559ea551e9d3dff3933c4c2aa9fd67ad

1 files changed, 26 insertions(+), 0 deletions(-)

jump to
M bot.gobot.go

@@ -459,6 +459,32 @@

return ch } +// WriteToHTTPResponse writes the request to the HTTP ResponseWriter. +// +// It doesn't support uploading files. +// +// See https://core.telegram.org/bots/api#making-requests-when-getting-updates +// for details. +func WriteToHTTPResponse(w http.ResponseWriter, c Chattable) error { + params, err := c.params() + if err != nil { + return err + } + + if t, ok := c.(Fileable); ok { + if !t.useExistingFile() { + return errors.New("Can't use HTTP Response to upload files.") + } + } + + values := buildParams(params) + values.Set("method", c.method()) + + w.Header().Set("Content-Type", "application/x-www-form-urlencoded") + _, err = w.Write([]byte(values.Encode())) + return err +} + // GetChat gets information about a chat. func (bot *BotAPI) GetChat(config ChatInfoConfig) (Chat, error) { params, _ := config.params()