all repos — telegram-bot-api @ dc198e23462284f58d4c8432cbb91dae592bfd90

Golang bindings for the Telegram Bot API

Merge pull request #6 from raulsntos/master

Ability to pass a client instead of using http.DefaultClient
Syfaro syfaro@foxpaw.in
Tue, 28 Jul 2015 12:15:46 -0400
commit

dc198e23462284f58d4c8432cbb91dae592bfd90

parent

60337023c51a0362a2e5df9801dd7ea70ef83cdc

2 files changed, 17 insertions(+), 8 deletions(-)

jump to
M bot.gobot.go

@@ -1,19 +1,29 @@

// Package tgbotapi has bindings for interacting with the Telegram Bot API. package tgbotapi +import "net/http" + // BotAPI has methods for interacting with all of Telegram's Bot API endpoints. type BotAPI struct { - Token string `json:"token"` - Debug bool `json:"debug"` - Self User `json:"-"` - Updates chan Update `json:"-"` + Token string `json:"token"` + Debug bool `json:"debug"` + Self User `json:"-"` + Updates chan Update `json:"-"` + Client *http.Client `json:"-"` } // NewBotAPI creates a new BotAPI instance. // Requires a token, provided by @BotFather on Telegram func NewBotAPI(token string) (*BotAPI, error) { + return NewBotAPIwithClient(token, &http.Client{}) +} + +// NewBotAPIWithClient creates a new BotAPI instance passing an http.Client. +// Requires a token, provided by @BotFather on Telegram +func NewBotAPIWithClient(token string, client *http.Client) (*BotAPI, error) { bot := &BotAPI{ - Token: token, + Token: token, + Client: client, } self, err := bot.GetMe()
M methods.gomethods.go

@@ -131,7 +131,7 @@

// MakeRequest makes a request to a specific endpoint with our token. // All requests are POSTs because Telegram doesn't care, and it's easier. func (bot *BotAPI) MakeRequest(endpoint string, params url.Values) (APIResponse, error) { - resp, err := http.PostForm("https://api.telegram.org/bot"+bot.Token+"/"+endpoint, params) + resp, err := bot.Client.PostForm("https://api.telegram.org/bot"+bot.Token+"/"+endpoint, params) if err != nil { return APIResponse{}, err } else {

@@ -197,8 +197,7 @@ }

req.Header.Set("Content-Type", w.FormDataContentType()) - client := &http.Client{} - res, err := client.Do(req) + res, err := bot.Client.Do(req) if err != nil { return APIResponse{}, err }