Skip to content

Commit

Permalink
Merge pull request #375 from Eivel/develop
Browse files Browse the repository at this point in the history
Handle error in NewWebhook and NewWebhookWithCert
  • Loading branch information
Syfaro authored Mar 11, 2021
2 parents 0a6e349 + 69a8270 commit 53d566b
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 12 deletions.
36 changes: 30 additions & 6 deletions bot_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -550,8 +550,13 @@ func TestSetWebhookWithCert(t *testing.T) {

bot.Request(DeleteWebhookConfig{})

wh := NewWebhookWithCert("https://example.com/tgbotapi-test/"+bot.Token, "tests/cert.pem")
_, err := bot.Request(wh)
wh, err := NewWebhookWithCert("https://example.com/tgbotapi-test/"+bot.Token, "tests/cert.pem")

if err != nil {
t.Error(err)
}
_, err = bot.Request(wh)

if err != nil {
t.Error(err)
}
Expand All @@ -572,8 +577,14 @@ func TestSetWebhookWithoutCert(t *testing.T) {

bot.Request(DeleteWebhookConfig{})

wh := NewWebhook("https://example.com/tgbotapi-test/" + bot.Token)
_, err := bot.Request(wh)
wh, err := NewWebhook("https://example.com/tgbotapi-test/" + bot.Token)

if err != nil {
t.Error(err)
}

_, err = bot.Request(wh)

if err != nil {
t.Error(err)
}
Expand Down Expand Up @@ -704,7 +715,14 @@ func ExampleNewWebhook() {

log.Printf("Authorized on account %s", bot.Self.UserName)

_, err = bot.Request(NewWebhookWithCert("https://www.google.com:8443/"+bot.Token, "cert.pem"))
wh, err := NewWebhookWithCert("https://www.google.com:8443/"+bot.Token, "cert.pem")

if err != nil {
panic(err)
}

_, err = bot.Request(wh)

if err != nil {
panic(err)
}
Expand Down Expand Up @@ -737,7 +755,13 @@ func ExampleWebhookHandler() {

log.Printf("Authorized on account %s", bot.Self.UserName)

_, err = bot.Request(NewWebhookWithCert("https://www.google.com:8443/"+bot.Token, "cert.pem"))
wh, err := NewWebhookWithCert("https://www.google.com:8443/"+bot.Token, "cert.pem")

if err != nil {
panic(err)
}

_, err = bot.Request(wh)
if err != nil {
panic(err)
}
Expand Down
20 changes: 14 additions & 6 deletions helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -300,25 +300,33 @@ func NewUpdate(offset int) UpdateConfig {
// NewWebhook creates a new webhook.
//
// link is the url parsable link you wish to get the updates.
func NewWebhook(link string) WebhookConfig {
u, _ := url.Parse(link)
func NewWebhook(link string) (WebhookConfig, error) {
u, err := url.Parse(link)

if err != nil {
return WebhookConfig{}, err
}

return WebhookConfig{
URL: u,
}
}, nil
}

// NewWebhookWithCert creates a new webhook with a certificate.
//
// link is the url you wish to get webhooks,
// file contains a string to a file, FileReader, or FileBytes.
func NewWebhookWithCert(link string, file interface{}) WebhookConfig {
u, _ := url.Parse(link)
func NewWebhookWithCert(link string, file interface{}) (WebhookConfig, error) {
u, err := url.Parse(link)

if err != nil {
return WebhookConfig{}, err
}

return WebhookConfig{
URL: u,
Certificate: file,
}
}, nil
}

// NewInlineQueryResultArticle creates a new inline query article.
Expand Down
25 changes: 25 additions & 0 deletions helpers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,31 @@ import (
"testing"
)

func TestNewWebhook(t *testing.T) {
result, err := NewWebhook("https://example.com/token")

if err != nil ||
result.URL.String() != "https://example.com/token" ||
result.Certificate != interface{}(nil) ||
result.MaxConnections != 0 ||
len(result.AllowedUpdates) != 0 {
t.Fail()
}
}

func TestNewWebhookWithCert(t *testing.T) {
exampleFile := File{FileID: "123"}
result, err := NewWebhookWithCert("https://example.com/token", exampleFile)

if err != nil ||
result.URL.String() != "https://example.com/token" ||
result.Certificate != exampleFile ||
result.MaxConnections != 0 ||
len(result.AllowedUpdates) != 0 {
t.Fail()
}
}

func TestNewInlineQueryResultArticle(t *testing.T) {
result := NewInlineQueryResultArticle("id", "title", "message")

Expand Down

0 comments on commit 53d566b

Please sign in to comment.