Merge pull request #4 from neonxp:issue_3

Fix issue #3
This commit is contained in:
Alexander Kiryukhin 2021-02-14 13:23:10 +03:00 committed by GitHub
commit c31a53b6a1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 4 deletions

3
api.go
View file

@ -161,6 +161,9 @@ func (a *Api) getUpdates(limit int, timeout int, marker int64, types []string) (
}
body, err := a.client.request(http.MethodGet, "updates", values, nil)
if err != nil {
if err == errLongPollTimeout {
return result, nil
}
return result, err
}
defer func() {

View file

@ -3,6 +3,7 @@ package tamtam
import (
"bytes"
"encoding/json"
"errors"
"io"
"net/http"
"net/url"
@ -10,6 +11,10 @@ import (
"github.com/neonxp/tamtam/schemes"
)
var (
errLongPollTimeout = errors.New("timeout")
)
type client struct {
key string
version string
@ -44,7 +49,7 @@ func (cl *client) requestReader(method, path string, query url.Values, body io.R
err, ok := err.(*url.Error)
if ok {
if err.Timeout() {
return nil, nil
return nil, errLongPollTimeout
}
}
return nil, err

View file

@ -13,6 +13,7 @@ import (
"os/signal"
"github.com/neonxp/tamtam"
"github.com/neonxp/tamtam/schemes"
)
func main() {
@ -28,13 +29,15 @@ func main() {
for upd := range api.GetUpdates(ctx) {
log.Printf("Received: %#v", upd)
switch upd := upd.(type) {
case *tamtam.MessageCreatedUpdate:
case *schemes.MessageCreatedUpdate:
err := api.Messages.Send(
tamtam.NewMessage().
SetUser(upd.Message.Sender.UserId).
SetText(fmt.Sprintf("Hello, %s! Your message: %s", upd.Message.Sender.Name, upd.Message.Body.Text)),
)
log.Printf("Answer: %#v %#v", res, err)
if err != nil {
log.Printf("Error: %#v", err)
}
default:
log.Printf("Unknown type: %#v", upd)
}

View file

@ -12,6 +12,7 @@ import (
"os"
"github.com/neonxp/tamtam"
"github.com/neonxp/tamtam/schemes"
)
func main() {
@ -38,7 +39,7 @@ func main() {
upd := <-ch
log.Printf("Received: %#v", upd)
switch upd := upd.(type) {
case tamtam.MessageCreatedUpdate:
case *schemes.MessageCreatedUpdate:
err := api.Messages.Send(
tamtam.NewMessage().
SetUser(upd.Message.Sender.UserId).